java群聊功能是怎么实现的?
1个回答
展开全部
直接用socket和servsocket开发。命令行形式,改造成可视化的话,需要拆分功能。懒。
主要思路:
客户端 连接到服务 获取输入输出流。分别用2个线程处理输入流和输出流。
服务端 使用Set集合保存socket信息。同时使用线程安全Queue保存接收到的message。使用一个线程处理输入流,并将接到的封装成一个Message对象放到Queue中,对象保存连接的socket信息。另开一个线程用于从Queue获取消息,然后分发消息到Set中socket。
只是一个粗糙的即时聊天室。无缓冲功能。新用户加入进来不能获取以前的消息。只能获取加入后的其他人再发送的消息。
像这样:服务端测试:message中socket标识消息来源。
使用三个客户端测试:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询