Netmsg 聊天程序
很早就想做一个类似 QQ 一样的聊天程序,苦于一直没有时间,再加上觉得
网络多点通信比较难做,所以这个想法就搁在一旁。最近二个月学校放假闲着
无聊看了一些 Tcp/ip,多线程的书,再加上以前的一点 C++和 VC 的基础,就着
手做了起来,共化了 17 天完成了这个程序。它包括服务器端程序 NetMsgServer
和客户端程序 NetMsgClient。通过编程还发现原始的 socket(像 send,recv 等)
命令比 VC 封装好的 CScoket 速度要快。怎么说呢,程序不小,有 3000 多行的
代码,错误和垃圾代码肯定也不少了,毕竟水平有限,大家看了不要扔鸡蛋就
谢谢了。
一.说明
本程序采用 tcp/ip socket 多线程编程,并对一些重要的同步操作做了超时控
制,以减少等待的时间,像连接服务器,等待对方接收文件等。基本功能跟
QQ 类似,能进行多点的聊天和点对点的文件传送。这种编程的优势在于传送
的数据不会丢失,而且用户上线下线能即时反应出来。唯一的遗憾是界面做的
太滥,本人对界面编程一窍不通,暂且还只能在局域网内使用,因为没有增加
可以通过代理服务器的功能。
二.大概通信流程
1. NetMsgServer 服务器端
它采用了两个线程,其中一个线程处理各个客户端的连接请求(accept),
NetMsgServer
NetMsgClient
NetMsgClient
NetMsgClient
ACCESS 数据库
查询、修改特定
用户基本信息
4000 端 口 与 服 务
器连接,注册、登
陆、下线、请求在线
用户列表、察看修
改用户资料。
4001 端 口 处 理 与
各个客户端的通话
4002 端 口 处 理 与
对方的点对点的文
件传送
评论2
最新资源