程序实现功能:
局域网聊天软件,启动即可找到在线设备,并能够进行简单的文字聊天。
其实下面这个框图已经说明了程序的绝大部分功能原理。
核心类的程序框图
我觉得,这个程序中使用的最好的技术,应该就是IOCP了。后面我会针对IOCP好好地写一篇博文,这个技术虽然刚学的时候有点乱,但是确实很好用。
上面的框图中中间的UDPServer线程等待的事件完成是MainServer线程在Listen函数调用结束后设置的事件。这里忘了标了。
说明
前几天在实验室看《Windows网络与通信程序设计》这本书,看完了前5章吧,就觉得目前手头的技术去做一个局域网聊天软件应该差不多了。虽然还有很多细节性的东西还不是非常懂,但是做一个小规模的软件,我自认为是问题不大的。就这样,在大约4天之后,也就是这个月的18号,这款LANChat程序诞生~
首先我声明:因为我第一次写网络相关的程序,所以肯定存在疏忽,在相关方面肯定是存在不少bug的,另外我在测试的时候也经常遇到程序启动失败的情况,而且原因尚未查明。所以我并不保证这款程序的稳定性和安全性。(作为这个程序的设计人员真是感到汗颜~以后会好的)
另外代码中大部分析构函数形同虚设,毕竟最初实现的时候尚不清楚能够实现与其功能,所以根本就没顾忌资源释放这一块。比如,聊天窗口建立这一块我就没使用delete。
多线程部分因为涉及到对数据的访问问题,所以我使用了关键段:CriticalSection结构以及相关函数。
因为这个文档是在寝室写的,所以没有在线设备,也无法打开聊天窗口,在实验室三台计算机之间使用没问题。
另外winsock2初始化是在工程中选择的,在如console类的程序中使用socket程序前一定要做好相关的初始化以及库,文件包含工作。
socket使用程序初次尝试。
时间: 2024-10-27 10:03:59