综合分析:
基于TCP的聊天室,支持多个用户同时登陆服务器进行聊天。(相当于群)
socket编程,做一对多的通信,必然要用到多线程,保证多个客户端(并行)登陆服务器时同时进行聊天。
项目要求:
利用UDP协议,实现一套聊天室软件。服务器端记录客户端的地址,客户端发送消息后,服务器群发给各个客户端软件。
在写项目前思考一下问题:
● 客户端会不会知道其它客户端地址?
UDP客户端不会直接互连,所以不会获知其它客户端地址,所有客户端地址存储在服务器端。
● 有几种消息类型?
登录:服务器存储新的客户端的地址。把某个客户端登录的消息发给其它客户端。
聊天:服务器只需要把某个客户端的聊天消息转发给所有其它客户端。
退出:服务器删除退出客户端的地址,并把退出消息发送给其它客户端。
● 服务器如何存储客户端的地址?
● 客户端如何同时处理发送和接收?
流程图:
服务器:
![](https://i-blog.csdnimg.cn/blog_migrate/f41ac8560feb396e1fe7aff3a1b25108.png)
客户端: