我想禁用一个由套接字超时产生的错误消息,因为它正在填充我的控制台(Linux,终端)。Java在特定的调用中禁用堆栈跟踪?
的代码:
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(Unknown Source) at thread.ThreadListenResponseQuery.run(ThreadListenResponseQuery.java:46) at java.lang.Thread.run(Unknown Source)
我已经尝试过了,它不工作。 – 2013-05-09 19:50:12
检查编辑,希望它有帮助。 – 2013-05-09 19:55:30