1
我正在運行網絡數據包傳輸丟失的模擬。我的服務器應用程序有時不會將數據發送回我的客戶端。如何在有限時間(超時)內從DatagramSocket塊中讀取數據?
在我的客戶端中,我每10秒對服務器運行一次ping。但是,如果我的服務器沒有發回任何東西,我的客戶端就會等待,直到收到下一個數據包。如果我沒有從服務器獲得任何東西,我怎麼能繼續下一次迭代?
//attempt to read from server
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
receivePacket.getData();
//client blocks on this line until something is received from server
clientSocket.receive(receivePacket);
String receivedFromServer = new String(receivePacket.getData());
System.out.println("FROM SERVER:" + receivedFromServer);
感謝。那完美的工作。我不得不趕上SocketTimeoutException – Tony 2011-04-04 01:43:35
@Tony:是的,不客氣! :) – mre 2011-04-04 01:44:45