- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
P2P聊天软件
一:软件构架
开发环境:Visual studio 2008
开发语言:C++
软件框架:MFC
软件功能图:
二:服务器设计
1.数据设计
用户基本信息user_info
序号 字段名 含义 数据类型
1 user_id 用户ID unsigned long
2 user_name 用户显示名称 string
3 user_ip 用户IP地址 string
4 user_port 用户监听端口 short
其中user_id字段为登录时服务器自动分配
登陆用户列表friend_list
含义:用于在客户端或者服务器端保存在线用户信息
数据类型 vectoruser_info
消息message
含义:peer之间发送的消息
数据类型:string
2.登录设计(如下图)
和(2)的登录交互用TCP协议实现。
过程客户端向服务器发送带有user_info结构的信息。服务器仅使用user_name。
过程服务器填充user_info的user_id域,把该user_info添加到在线用户列表中,然后向客户端发送该列表。
在客户端登录时,user_id必须设置为0;
其中填充user_id域的方法是:把该user_info在服务器列表中的位置编号-1作为user_id。
三:使用方法
首先启动服务器程序,打开服务端软件。然后再点击启动。如下图所示:此时服务器会在它的ip地址与端口进行监听。这里应该注意的是服务器的监听端口是写死了的。在客户端是可以改服务器的端口的,不过现在的版本的服务器还没有实现这一功能。所以在找服务器的时候只改IP地址就行了。不要改端口号。不然就会连不上服务器。
启动服务器程序后,就可以启动客户端程序。客户端可以与服务器在同一个计算机上,也可以不在一个局域网内。只要接入了internet就可以。
已经说过了,现在的这一个版本只能改服务器的IP,而不能够改端口号。以后可以改进这一个功能。上图中的灰色登陆成功按钮在没有进行登陆之前显示的是“登陆”。在设置好服务器的地址与端口后。若能够成功的连接到服务器端口上,则会显示登陆成功。同时也会收到服务器发过来的在线的客户端名字。并显示在“在线好友”那一个域里面。上图中 一个好友在图上。名字为:client.。我们可以双击打开聊天窗口。如下图所示:
弹出这一个窗口的同时另外的一个客户端也会同时弹出一个与这一个客户相对应的对话窗口。上半部分为消息记录。下半部分是输入信息的地方。可以在下面的一栏中输入想说的话,然后再点击右边的发送按键就可以与对方聊天了。
四:总结
现在的软件还有很多的bug。比如有的电脑上进行输入ip的时候就不能输入三位数。有的又可以。有的时候还会发现未知的错误。总的来说能实现基本功能,不过还有很多有待改进的地方。以后的版本能够进行完善。
客户端
服务器
(1)
(2)
文档评论(0)