Java套接字,服务器向多个客户端发送消息

时间:2016-05-05 20:16:06

标签: java multithreading sockets server client

我是一个服务器和多个客户端通过线程。客户端将其消息发送到服务器。我已经研究出如何使服务器像回声系统一样将消息发送回客户端。如果我有两个客户端,我希望它们将它们的消息发送到服务器,服务器应该将它发送给没有发送消息的客户端,即另一个客户端。除了发送消息的客户之外,我该如何将消息发送回所有客户端?

3 个答案:

答案 0 :(得分:0)

当消息进入时,确定传入消息与之关联的userID /其他标识ID。然后重新广播到所有其他套接字,但排除与发送消息的ID相关联的套接字

答案 1 :(得分:0)

在服务器端创建一个包含所有客户端的列表... 每次收到新的msg,然后迭代列表并使用套接字的端口作为id发送msg ...

答案 2 :(得分:0)

我最近也写了一个聊天程序。我做的是,我有一个类ClientHandler来处理每个客户的连接。

ClientHandler内,我有一个HashMap。我添加了与HashMap相关联的每个客户端,Keyclient id。我为int使用了UUID而不是client id

在这个处理程序类中,我有一个sendMessage(String str)方法。在此方法中,循环遍历每个for-each对象的ClientHandler循环,检查values内的HashMap。在这个for-each循环中,我有一个if语句,用于检查您是否正在使用ClientHandler id写入this对象。如果检查返回false,您可以继续在PrintWriter上写下消息,并将消息 发送给写入消息的客户端。

这适用于。可能不适用于