【JAVA】多用户通信系统(网络编程/多线程/IO流)
需求分析
用户登录
拉取在线用户列表
无异常退出
私聊
群聊
发文件
服务器推送新闻
离线发消息/文件
整体思路
每个qq用户都是一个线程,网络通信需要一个Socket,因此每个用户持有一个Socket。
服务端对于每个登录的用户建立一个线程,这个线程也有一个Socket属性。
也就是说客户端之间通过服务端中转进行通信。服务端和客户端用户之间的通信需要各自建立一个线程,因为通信是随机的一直进行的balabala。这个线程需要持有一个Socket用于通信。
为了更好的管理线程,需要使用集合hm来管理,
原创
2023-07-22 19:41:18 ·
257 阅读 ·
0 评论