良い一日、
私はこのようなJavaでsendMessage関数を持っています。現在、任意のスレッド操作 (HTTP 要求など) から呼び出すことができる静的メソッドとして存在します。ただし、同時に 2 つのリクエストを送信すると、sendMessage リクエストの 1 つが「接続のリセット」をスローします。
現在のポートと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;
}