本例开发实现了一个多用户的P2P在线聊天程序,C/S结构,客户端可发送消息,然后其他的用户接收到该消息并将其显示在界面中,服务器对信息进行有关处理并向适当的用户发送,同时在服务器端还将显示所有的在线用户,网络管理员即服务器端管理员可选中某用户并将其踢出该聊天室。
本篇为第二篇,如果您是第一次进来请从第一篇开始,此程序不用修改完全可用,第一篇地址:http://java161.iteye.com/blog/616113
6 通信流程(实例P2P原理分析图)和运行结果
本次开发的聊天程序中的实际信息流程却比较复杂,它们之间信息的大致流向如下图所示:
程序运行的结果图如下所示:
图片无法显示
例如:lxy,maple,pig在线,这时lxy向询求一个资源(一个苹果),而在线成员maple和pig恰好都有,并分别给了答复,这时lxy 收到消息即可选择某一用户去提取资源。
1 服务器端运行界面
图片
2 客户端运行界面
u 请求资源客户:
图片
u 提供资源客户(2个)
1)
图片
2)
图片
7 程序可改进之处
由于本程序中所有的用户实例和监听实例都是一个完整的线程,因此在本程序中可以进行适当的修改将其改为一个多聊天室多用户之间的聊天程序。
即可以形成一个多服务器的P2P网络(包含多个自网络),在某子网络中的客户量大时,用户可以选择另一个网络来查询自己所需资源。
因图片无法显示,请见谅,现已以附件形式将文档和代码传上,请下载附件阅读!