java群聊功能是怎么实现的?

 我来答
上_善_下_流
2023-03-31 · TA获得超过677个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:145万
展开全部

直接用socket和servsocket开发。命令行形式,改造成可视化的话,需要拆分功能。懒。

主要思路:

客户端 连接到服务 获取输入输出流。分别用2个线程处理输入流和输出流。

服务端 使用Set集合保存socket信息。同时使用线程安全Queue保存接收到的message。使用一个线程处理输入流,并将接到的封装成一个Message对象放到Queue中,对象保存连接的socket信息。另开一个线程用于从Queue获取消息,然后分发消息到Set中socket。

只是一个粗糙的即时聊天室。无缓冲功能。新用户加入进来不能获取以前的消息。只能获取加入后的其他人再发送的消息。

像这样:服务端测试:message中socket标识消息来源。

使用三个客户端测试:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式