如何将所有消息发送到客户端(java 服务器)

How to send all the message to the client(java server)

我建立了一个 java 服务器,我想向其他客户端发送消息。这是我的客户端 code.The 程序能够将一个客户端发送到的消息打印到屏幕上服务器(但只有客户端发送的消息)例如: new user:hi(这是服务器接收到的内容,也是文本客户端控制台显示的内容)

  import java.io.IOException;
  import java.io.ObjectOutputStream;
     import java.net.Socket;
    import java.util.Scanner;
       import java.util.logging.Level;
      import java.util.logging.Logger;

       public class ClientPeer extends Thread{


String username;
Socket socket;
public ClientPeer(String username,Socket socket)
{
    this.username=username;
    this.socket=socket;
}
@Override
public synchronized void run()
{
    Scanner input=new Scanner(System.in);
    String string=input.nextLine();
    while(true)
    {
        if(!string.startsWith("/w") && !string.equals("exit"))
        {
            try {
                sendMessage(string);
            } catch (IOException ex) {
                Logger.getLogger(ClientPeer.class.getName()).log(Level.SEVERE, null, ex);
            }
            System.out.println(username+":"+string);
        }
        string=input.nextLine();


    }

}
public void sendMessage(String message) throws IOException
{
    ObjectOutputStream object=new ObjectOutputStream(socket.getOutputStream());
    object.writeObject(new Message(message,username));
    object.flush();


}
public void sendMessage(String message,String whoto) throws IOException
{
    ObjectOutputStream object2=new   ObjectOutputStream(socket.getOutputStream());
    object2.writeObject(new PrivateMessage(username,message,whoto));
    object2.flush();
   }
     }

如果我没理解错的话,您想将消息发送给连接到服务器的其余客户端。

为此,您的服务器必须跟踪所有与其连接的客户端套接字。一种方法是在服务器端保留一个客户端套接字列表,当服务器收到消息时,遍历该列表并将消息发送给每个客户端。

检查此 link,它使用相同的机制: