Java 多客户端静态变量

Java 多客户端静态变量,java,multithreading,sockets,Java,Multithreading,Sockets,我通过套接字接收消息。如果令牌[0]==MSG,我想保存源IP和端口(它们存储在令牌[3]和令牌[4]中),并向服务器发送消息。当服务器应答时,令牌[0]将包含服务器应答,因此将执行最后一个else,我需要sourceIP和端口,但它们已重新初始化并包含Null。当我有一个客户机时,我尝试使用静态it工作,但对于多个客户机,我遇到了问题 publicstaticinetaddress msgAdr=null; 公共静态int msgPort=0; if(“HOPEN”.equals(标记[0])

我通过套接字接收消息。如果令牌[0]==MSG,我想保存源IP和端口(它们存储在令牌[3]和令牌[4]中),并向服务器发送消息。当服务器应答时,令牌[0]将包含服务器应答,因此将执行最后一个else,我需要sourceIP和端口,但它们已重新初始化并包含Null。当我有一个客户机时,我尝试使用静态it工作,但对于多个客户机,我遇到了问题

publicstaticinetaddress msgAdr=null;
公共静态int msgPort=0;
if(“HOPEN”.equals(标记[0])){
霍本(IP地址,端口);
}
else if(“HCLOSE.”等于(令牌[0])){
hclose(IP地址,端口);
}
else if(“MSG”.equals(标记[0])){
msgAdr=InetAddress.getByName(令牌[3]);
msgPort=Integer.parseInt(标记[4].trim());
System.out.println(“**********”+msgAdr+”+msgPort);
msg(IPAddress,port);//向服务器发送消息
}
其他的
{
System.out.println(“----”+msgAdr+“+msgPort”);
发送(句子,msgAdr,msgPort);//将答案发送给客户端
}

为什么不把它们定义为局部变量呢?我不明白你的意思。。当我得到第一个味精时,我提取它们,然后如果我没有收到味精、霍本或盐酸,我想在哪里使用它们?您的意思是要将地址/端口数据发送给另一个线程吗?如果是这样的话,您就不能通过简单地将数据填充到共享静态数据中来进行数据通信,因为在共享静态数据中,数据将被覆盖/切片/someOtherUB'd。您需要安全、可靠的线程间通信/信令。请更详细地解释你想要实现的目标。