java中soket一个服务器可以向多个客服端发送信息,怎么实现!

 我来答
百度网友017b7d9
推荐于2018-05-06 · TA获得超过556个赞
知道小有建树答主
回答量:375
采纳率:0%
帮助的人:363万
展开全部
1步.首先主服务器在阻塞等待客户端连接
2步.当有连接来的时候就分配给子服务器来和这个socket会话
3步.保存每个客户端的socket对象,比如存在一个链表onlineList<Socket>中,

///////////////////////////////////
主服务器类
onlineList= Collections.synchronizedList(new LinkedList<Socket>());//创建一个用于存放在线用户的socket对象的表
while()
{
Socket client_socket = server.accept(); //1步
subServer new_sub = new subServer(client_socket);//2步
onlineList.add(client_socket);//3步
}

然后当要群发就可以在主服务器执行下面的方法
///////////////////////////
主服务器类的群发方法
BufferedWriter writer;
String content = "要发送的内容";
for(Socket target: onlineList) //从列表中找出
{
writer = new BufferedWriter(new OutputStreamWriter(target.getOutputStream())); //循环对每个socket对象使用getOutputStream
writer.write(content); //发送出去
writer.flush(); //清空刷缓冲区
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式