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 回答