我的數據報套接字不會拋出一個SocketTimeout,儘管它被設置,我不知道如何解決這個問題。代碼如下。問題是,如果它沒有收到沿這個套接字連接的任何消息,它將在第一次運行時超時。但是,它幾次成功接收到一條消息,稍後在調用.receive時不會超時。DatagramSocket不拋出SocketTimeout - Java
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) {}
}
有了這種異常處理,你怎麼可能告訴? – EJP
這只是代碼的一部分。我把它在catch塊內輸出到控制檯 – user1620902
我知道這真的很老,但你有沒有想過它? –