【发布时间】:2012-12-12 03:24:00
【问题描述】:
尽管设置了 SocketTimeout,但我的数据报套接字没有抛出,我不确定如何解决这个问题。代码如下。问题是,如果它没有通过此套接字连接接收任何消息,它将在第一次运行时超时。但是,它成功接收了几次消息,以后调用 .receive 时它不会超时。
DatagramSocket serverSocket = new DatagramSocket(serverSyncPort);
serverSocket.setSoTimeout(200);
while(true)
{
receiveData = new byte[1024];
receivePacket = new DatagramPacket(receiveData,receiveData.length);
try
{
serverSocket.receive(receivePacket);
}
catch(SocketTimeoutException e) {}
}
【问题讨论】:
-
有了那个异常处理,你怎么可能知道?
-
这只是代码的一部分。我让它在 catch 块中输出到控制台
-
我知道这真的很老了,但你有想过吗?