再会,
我在 java 中有一个 sendMessage 函数,看起来像这样。它目前作为一种静态方法存在,可以被任何线程操作(例如 HTTP 请求)调用。但是,如果我要同时发送两个请求......其中一个 sendMessage 请求将引发“连接重置”。
我需要以某种方式知道我当前的端口和 ip 正在使用中!这样我就不会重置连接,而是等待它再次可用。有办法吗?
private static String sendMessage(int command,String data,int port,String ip){
try{
String sendString=Integer.toString(command)+":"+data+'$'+'\n';
BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
Socket clientSocket = new Socket();
InetAddress addr = InetAddress.getByName(ip);
SocketAddress sockaddr = new InetSocketAddress(addr, port);
clientSocket.connect(sockaddr, 20000);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
outToServer.writeBytes(sendString);
String rcvString = inFromServer.readLine();
System.out.println("FROM DEVICE: " + rcvString);
clientSocket.close();
return rcvString;
}catch(Exception e){
System.err.println(e.getMessage());
}
return NULL;
}