WEB开发网
开发学院软件开发VC Netmsg 局域网聊天程序 阅读

Netmsg 局域网聊天程序

 2006-07-21 11:15:27 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 很早就想做一个类似QQ一样的聊天程序,苦于一直没有时间,Netmsg 局域网聊天程序,再加上觉得网络多点通信比较难做,所以这个想法就搁在一旁,再发送一个用户资料的数据结构,注册成功服务器返回一个id号给用户,最近二个月学校放假闲着无聊看了一些Tcp/ip,多线程的书,再加上以前的一点C

本文示例源代码或素材下载

很早就想做一个类似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号给用户,否则返回一个错误代码。send(m_dcSocketClient,(char *)&userInf,sizeof(userInf),0);//发送用户资料

其中:

1 2  下一页

Tags:Netmsg 局域网 聊天

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接