serversocket java向设置的目标发送消息

serversocket java向设置的目标发送消息,java,Java,关于java中的serversocket,我有一个问题,假设我有一个这样的结构 SERVER ---------- CLIENT 1 ---------- CLIENT 2 客户端1发送到服务器,我希望服务器发送回客户端1发送到客户端2的内容…服务器是否可以发送带有设置目标的消息?我试过了,似乎服务器将消息发送回客户端1而不是客户端2 public void run(){ try{ startGUI(); // initial B

关于java中的serversocket,我有一个问题,假设我有一个这样的结构

SERVER ---------- CLIENT 1
       ---------- CLIENT 2
客户端1发送到服务器,我希望服务器发送回客户端1发送到客户端2的内容…服务器是否可以发送带有设置目标的消息?我试过了,似乎服务器将消息发送回客户端1而不是客户端2

    public void run(){
    try{
        startGUI(); 
        // initial BufferedReader and PrintWriter object by binding it with Socket
        BufferedReader in = new BufferedReader(new InputStreamReader(getSocket().getInputStream()));



        while(true){
            String readmsg = in.readLine();
            if(readmsg.startsWith("GLOBAL")){
                sendMsg(readmsg);
            }
            writeToMsg(readmsg);
        }

    } catch (IOException e){
        writeToMsg("Error in closing Socket");
    }
    writeToConnection("Connection from client #"+getNumClient()+" is closed");
   public void sendMsg(String msg, Socket sock){
    try{
    out = new PrintWriter(sock.getOutputStream(), true);   
    out.println(msg+"\n");
    } catch (IOException e){
        e.printStackTrace();
    }
}
上面的代码是我的服务器代码,它读取输入流并检测带有单词GLOBAL…的消息,实际上是来自客户端1,但我不知道如何将其发送到客户端2

    public void run(){
    try{
        startGUI(); 
        // initial BufferedReader and PrintWriter object by binding it with Socket
        BufferedReader in = new BufferedReader(new InputStreamReader(getSocket().getInputStream()));



        while(true){
            String readmsg = in.readLine();
            if(readmsg.startsWith("GLOBAL")){
                sendMsg(readmsg);
            }
            writeToMsg(readmsg);
        }

    } catch (IOException e){
        writeToMsg("Error in closing Socket");
    }
    writeToConnection("Connection from client #"+getNumClient()+" is closed");
   public void sendMsg(String msg, Socket sock){
    try{
    out = new PrintWriter(sock.getOutputStream(), true);   
    out.println(msg+"\n");
    } catch (IOException e){
        e.printStackTrace();
    }
}

我的发送消息的代码…

Sendmsg使用两个参数,但您只使用一个参数调用它。如果您使用相同的套接字进行读写,那么这就是问题所在。您需要两个不同的套接字来与不同的客户端通话。可以检查当前谁连接到我的服务器。假设我需要套接字来与不同的客户端通话,但是如何创建客户端2的套接字?由于客户端1和客户端2位于同一个PC下,并且上面的sendMSG函数来自我的客户端1发送到服务器,我需要套接字连接到服务器…我仍然无法区分客户端1和客户端2套接字..您可以使用不同的端口来区分两者,但这是不可扩展的