コンソール (Linux、ターミナル) がいっぱいになるため、ソケット タイムアウトによって生成されるエラー メッセージを無効にしたいと考えています。
コード:
public ThreadListenResponseQuery(DatagramSocket socket){
this.socket = socket;
try {
socket.setSoTimeout(1500);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run(){
System.out.println("Waiting for response...");
// Waiting for 60 seconds...
while(System.currentTimeMillis() < startTime + 60000){
socket.receive(receive_packet);
// .. Additional work
}
}
プログラムは、応答を得るために 60 秒間待機しています。while
応答メッセージが来ないとサイクルがフリーズするため、ソケットにタイムアウトを設定しています。
エラー:
java.net.SocketTimeoutException: Receive timed out at java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData(Native Method) at java.net.DualStackPlainDatagramSocketImpl.receive0(Unknown Source) at java.net.AbstractPlainDatagramSocketImpl.receive(Unknown Source) at java.net. DatagramSocket.receive (不明なソース) で thread.ThreadListenResponseQuery.run (ThreadListenResponseQuery.java:46) で java.lang.Thread.run (不明なソース)