1

ネットワーク パケット伝送損失のシミュレーションを実行しています。サーバー アプリからクライアントにデータが返されないことがあります。

私のクライアントでは、毎秒 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);
4

1 に答える 1

3

タイムアウトを設定する必要があります:

clientSocket.setSoTimeout(TIMEOUT_IN_MILLISECONDS)

于 2011-04-04T01:31:30.117 に答える