作者:钱义力
下载源代码 【程序编程相关:windows平台mpi程序编译 】
北京工业大学软件学院 2002 级研 【推荐阅读:WIN32音频数据采集---WaveIn】一.说明 【扩展信息:痛苦的历程:Ado访问PARADOX数据】 很早就想做一个类似qq一样的聊天程序,苦于一直没有时间,再加上觉得网络多点通信比较难做,所以这个想法就搁在一旁.最近二个月学校放假闲着无聊看了一些tcp/ip,多线程的书,再加上以前的一点c++与vc的基础,就着手做了起来,共化了17天完成了这个程序.它包括服务器端程序netmsgserver与客户端程序netmsgclient.通过编程还发现原始的socket(像send,recv等)命令比vc封装好的cscoket速度要快.怎么说呢,程序不小,有3000多行的代码,错误与垃圾代码肯定也不少了,毕竟水平有限,大家看了不要扔鸡蛋就谢谢了. 本程序采用tcp/ip socket多线程编程,并对一些重要的同步操作做了超时控制,以减少等待的时间,像连接服务器,等待对方接收文件等.基本功能跟qq类似,能进行多点的聊天与点对点的文件传送.这种编程的优势在于传送的数据不会丢失,而且用户上线下线能即时反应出来.唯一的遗憾是界面做的太滥,本人对界面编程一窍不通,暂且还只能在局域网内使用,因为没有增加可以通过代理服务器的功能.二.大概通信流程1.netmsgserver 服务器端 它采用了两个线程,其中一个线程处理各个客户端的连接请求(accept),另一个在客户端请求连接成功后处理接收到的命令并返回信息,包括用户注册.登陆.下线.生成在线用户列表.查询修改某个在线用户的信息等.2.netmsgclient客户端 每个netmsgclient客户端既是信息服务器端,又是信息客户端,所以能实现多点通信.2.1 通过注册来获得用户号码.发送两条命令:"regt\t\n",再发送一个用户资料的数据结构.注册成功服务器返回一个id号给用户,否则返回一个错误代码.... 下一页