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秒(タイムアウト)後に受信者が送信者データを待機するのを中止/停止するにはどうすればよいですか?