serversocket java向设置的目标发送消息
关于java中的serversocket,我有一个问题,假设我有一个这样的结构serversocket java向设置的目标发送消息,java,Java,关于java中的serversocket,我有一个问题,假设我有一个这样的结构 SERVER ---------- CLIENT 1 ---------- CLIENT 2 客户端1发送到服务器,我希望服务器发送回客户端1发送到客户端2的内容…服务器是否可以发送带有设置目标的消息?我试过了,似乎服务器将消息发送回客户端1而不是客户端2 public void run(){ try{ startGUI(); // initial B
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套接字..您可以使用不同的端口来区分两者,但这是不可扩展的