欢迎来到天天文库
浏览记录
ID:8252745
大小:29.50 KB
页数:8页
时间:2018-03-13
《聊天程序具体模块实现研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、聊天程序具体模块实现研究 摘要:随着网络的迅速发展,人们交流的方式也受到网络的巨大影响。越来越多的人们选择了网络聊天,通常聊天程序的主要系统主要包括以下四个模块:聊天程序模块、保密性模块、完整性模块、防抵赖模块。详细介绍了聊天程序的具体模块实现过程。关键词:聊天程序;模块;实现中图分类号:TB文献标识码:A文章编号:16723198(2013)020186020引言VC++6.0为Windows环境下的网络考法提供了强大的工具,而其中的Csocket控件就是其中之一。某聊天程序就是利用Csocket控件实现聊天程序的,它使得程序
2、的实现变得相对简单。通常聊天程序分为四大模块:聊天工具模块、保密性模块、完整性模块和防抵赖模块,以下详细介绍了这四大模块的具体实现过程。1聊天工具模块的实现8某聊天程序是建立在UDP的基础之上的,完成与远程计算机的通信,它通过与现在内部封装了所有的技术细节,并提供访问UDP网络服务的方便途径。只需要设置控件的属性并调用其方法就可以轻易实现与远程计算机的连接,并且可以实现双向的交换数据,而且不需要了解UDP的细节或者调用低级的WinsockAPI。此程序运行过程如下:在进行聊天的数据传输前(也就是广播),服务期先运行,等待客户端连接
3、。客户端运行后首先要连接到服务器,输入服务器的IP地址和连接的端口号(本程序默认为:4000)后开始连接。如成功会响应连接成功,反之响应连接失败,而后客户端皆可以后到广播的消息了。在服务器一端,没有以客户连接服务器,服务器上就会监听即提示相关信息,议题是由客户连接。服务器输入要广播的内容后就可以发送了,所有连接到服务器上的客户都会接收到信息。下面分别对于各个类、成员函数和响应函数进行介绍。CMessag类主要是用于封装消息的,目的是重载Serialize()函数对CArchive对象进行串行化,CArchive对象存储着接收到和将
4、要发送的数据,因此,CMessag类也就是对聊天内容进行封装的,而串行化便于接受和发送的。自定义类CserverSocket,在ClassView视图中右键单击“ChatDemoClasses”,选择“NewClass”,弹出的“NewClass”对话框。“ClassType”为MFC8class,“Name”为CServerSocket,“BaseClass”为CSocket,单击“OK”完成添加。CServerSocket类主要是用于重载CSocket类中OnAccept函数,负责接受客户端的连接。在此函数调用主对话框类的Pr
5、ocessPendingAccpt函数处理连接请求。在主对话框类中的几个主要的成员函数:ProcessPendingAccept()函数:在CSocket子类的OnReceive函数中被调用,起作用是对接收到的对方的连接请求进行处理;ClearContent()函数:用于清空变量,包括Socket对象和聊天数据;CloseSessionSocket()函数:用于关闭服务器和客户端会话的Socket连接。控件的消息响应函数。2保密性模块的实现DES程序是通过宏定义可选择小代码模式后者选择大打代码模式。在大代码模式下,程序定义了多个表
6、,从而使DES算法中的很多运算都可以通过查表实现,速度较快,但要求有较多的存储空间;在小代码模式下,可以不查表,从而节省了存储空间,但是速度较慢。DES算法主要是在工程中yxyDES.h和yxyDES.cpp两个文件,下面主要简单介绍下其主要的几个函数。加密解密时主要用到下面5个函数:8intdes_setup(congestunsightchar*key,intkeylen,intnum_rounds,des_key*skey)函数名:密钥生成函数功能描述:当密钥生成时,返回值为CRYPT_OK(0),结果保留在skey指向的结
7、构体。结构体中的ck存储加密时用的子密钥,dk_存储解密时用的子密钥。结构体中用的2个32位整数来存储一轮48位密钥,每一个32位整数被分成4个8位,每个8位的第6位存储密钥。如果把48位密钥分成8组,则这8组按存储的顺序从高到低为1、3、5、7、2、4、6、8。这样做是为了加密时可以把扩展和查表运算结合进行。voiddes_ecb_ebcrypt(constunsignedchar*pt,unsightchar*ct,des_key*key)函数名:加密函数。功能描述:主要是是对明文进行加密,加密成功时,返回CRYPT_OK。V
8、oiddes_ecb_decrypt(constunsignedchar*ct,unsignedchar*pt,des_key*key)函数名:解密函数。功能描述:主要是对密文进行解密,解密成功时,返回CRYPT_OK。intdes_test(vo
此文档下载收益归作者所有