TIMEOUTUDP Stop-and-wait で機能を実現しようとしています。つまり、受信ACK者が意図的に送信しないようにし、送信者が の後に再送信することを期待していTIMEOUTます。
ただし、recvfromのドキュメントには次のように記載されています。
ソケットでメッセージが利用できない場合、受信呼び出しは、ソケットがノンブロッキングでない限り、メッセージが到着するのを待ちます。
したがって、送信者と受信者の両方が と で行き詰まりsendto()ますrecvfrom()。彼らは両方ともハングします!を達成するためにコードを実行し続けることができる方法がほとんどありますTIMEOUT。
どうすればいいですか?