我必须编写实现 TCP 服务器和 TCP 客户端的 java 代码,其中 10% 的传输失败由随机数确定。现在在接收方,它需要等待 2000 毫秒(2 秒),如果在这 2 秒内没有从发送方收到数据。然后它将停止等待来自发件人的数据并将否定的 ACK 发送回发件人。
BufferedReader inFromSender =new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
long startTime = System.currentTimeMillis();
while(( System.currentTimeMillis() - startTime) < 2000 )
{
clientSentence = inFromSender.readLine();
System.out.println("Received: " + clientSentence);
}
System.out.println("Data Transmission failed");
但是一旦while循环开始并且接收者进入从发送者那里读取,它就永远不会中断..即使2秒。超时结束。如何在 2 秒(超时)后中止/停止接收方等待发送方数据。