基于TCP的局域网多用户通信、文件传送程序详解

http://tech.ddvip.com   2006年07月21日    社区交流

本文详细介绍基于TCP的局域网多用户通信、文件传送程序详解

  登录成功后,客户端将自己的用户名发送给聊天通信服务器,服务器为客户端创建一个套接字,两个线程,并填充socketInfo结构,连入链表。客户端发送消息结构为:“接收者用户名” + “:” + “发送者头像ID” + “~” + “(星期、月、日、年、时、分、秒)” +"\t" +"发送者用户名" +“->” + “接收者用户名” +"\n\r" + “发送的消息”,其头部均为接收者用户名,服务器依照用户名查找链表,截掉头部后把原信息进行转发,若客户端关闭, 则发送消息为Close!,服务器从链表中删除相应项。

  客户端可能收到的消息有三种,第一种为普通消息,结构如前所述;第二种为SendFile!,表示对方想向己方传送文件;第三种为Refuse!,表示对方拒绝接收己方文件。客户端A想给客户端B传送文件,则发送消息为SendFile!,B收到SendFile!后弹出消息框,提示对方向己方传送文件,接收按“是”,执行文件接收功能;拒绝按“否”,发送Refuse!

  六、附加说明

  1. 本软件在win2000professionSP4 + vc6MFC环境下开发和测试通过,使用前要注册ODBC数据源;数据源名称:wbQQuser;类型:ACCESS;文件名:wbQQuser.mdb,不明了之处请参看源程序,注释很清楚。
  2. 多线程通信使用的全局变量导致函数耦合度较大。
  3. 有些函数太长,导致功能不单一,内聚度降低。
  4. 客户端点击传送文件后,应使该按钮无效,直到文件传送完毕或文件传送线程关闭再使之有效,如不使用全局变量有什么好办法实现。

  我认为学好一种技术爱好是最好的老师,交流是最好的方法,请高手赐教。

  QQ:2105629

  Email:lwb75@sina.com。

  志存高远,脚踏实地,生命不息,奋斗不止!

作者:刘文博    责编:豆豆技术应用

正在加载评论...