局域网聊天系统
主框架模块由两个类构成:CserverDlg类和CserverApp类。类结构如下:
图5-1 服务器端主框架模块图
其中前面为红色方块的为类成员函数,浅蓝色方块的为类成员数据。 CserverApp类为应用程序主框架类,它在后台完成了一个基于MFC的应用程序的所有基本的初始化工作,如果用户需要在程序的初始化时加入一些自定义的操作,只需在其中的InitInstance()函数中加入就可以了。在本程序中,只需要将WIN SOCKETS的网络初始化工作完成。代码为: if (!AfxSocketInit())
{ }
在每一个基于MFC的WIN32程序中,它都是通过一个由全局对象启动整个初始化过程的机制,因为根据C++的设计,一个全局对象的生成即其构造函数的调用要先于程序的入口函数。所以,在这个对象的构造函数中可以做很多准备工作,这个对象就是程序主框架类的对象,具体到本程序中,即是上面讲到的CserverDlg类。
17
AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE;
局域网聊天系统
服务端线程的具体作就是首先创建一个SOCKETS,然后将该套接字绑定到本地主机的某一个固定的端口上,在本程序中选择了3127端口。接着将该套接字设置为异步非阻塞模式,并为它注册各种网络异步事件,最后开始监听。
5.2 网络扫描模块详细设
图5-2网络扫描示意图 5.3 信息发送模块详细设计
18
局域网聊天系统
beginUpdateData(TRUE);填充NETMESSAGE结构体获得列表框中的用户strcpy(netMessage.to,_T(\m_bWhispering密语发送消息(\所有人\strTo==_T(\MessageBox(\请选择对方!\错误\return;netMessage.type=PTC_WHISPERING;发送消息 图5-3 信息发送模块流程图
19
局域网聊天系统
5.4 信息接收模块详细设计
图5-4 信息接收模块流程图 以上即各个模块的详细设计的主要实现过程。
6 测 试
用二台机器通过集线器构成一个局域网,进行正确的网络配置,三台机器上都安装了WINDOWS操作系统,经过测试可正常运行。
20
局域网聊天系统
结 论
在当今电脑网络密布的世界当中,一个简单高效的局域网通信工具是如此的具有实用性,所以我们应当重视对它的相关研究与开发。在这次的毕业设计中,我应用了VC++6.0开发工具在WINDOWS平台上开发了一个基于WINDOWS平台的局域网通信工具,在这一重要的领域进行了相关的实践,不管是对我的研究能力,还是实际动手能力,还是资料查阅能力,都起了相当大的益处。通过此次毕业设计,我了解了进程间通讯的两种基本方法共享内存和消息,在实例中具体体会到了共享内存和消息的使用方法。所以,我决定认真总结这次毕业设计的经验,以及学习到的知识,来更加的充实自己的头脑和完善自己的知识结构。
另外,我也在这次设计中看到了自己的许多不足之处,由于初次接触到语言类问题,很多步骤都是自己临时学习,大大影响了系统的开发进度。
既然设计已经完成,论文也写到结论的地方,我希望自己能以一个良好的心态顺利毕业,走向社会。
21