我通过socket接收消息。如果令牌[0] == MSG我想保存源IP和端口(它们存储在令牌[3]和令牌[4]中)并向服务器发送消息。当服务器将应答时,令牌[0]将包含服务器应答,因此最后的其他将被执行,我需要sourceIP和端口,但它们被重新标记并包含Null。当我有一个客户端但有多个客户端我遇到问题时,我试图使用静态工作..
public static InetAddress msgAdr = null;
public static int msgPort = 0;
if("HOPEN".equals(tokens[0])) {
hopen(IPAddress, port);
}
else if("HCLOSE".equals(tokens[0])) {
hclose(IPAddress, port);
}
else if("MSG".equals(tokens[0])) {
msgAdr = InetAddress.getByName(tokens[3]);
msgPort = Integer.parseInt(tokens[4].trim());
System.out.println("**********" + msgAdr + " " + msgPort);
msg(IPAddress ,port); // send message to the server
}
else
{
System.out.println("-------" + msgAdr + " " + msgPort);
send(sentence, msgAdr, msgPort); //send answer to the Client
}