【问题标题】:Java sockets, server send message to multiple clientsJava套接字,服务器向多个客户端发送消息
【发布时间】:2016-08-31 18:22:56
【问题描述】:

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

【问题讨论】:

    标签: java multithreading sockets server client


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        ClientHandler 里面我有一个HashMap。我添加了每个连接到HashMap 的客户端,Keyclient id。我使用UUID 而不是int 作为client id

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

        这对有用。可能不适合

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-16
          • 2013-04-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-05
          • 1970-01-01
          相关资源
          最近更新 更多