尽管已设置我的数据报套接字并没有抛出 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) {}
}