UDP ベースの Stop-and-Wait ARQ を実装しています。エラー確率をシミュレートしようとしています。
送信側と受信側の両方で、while()送受信を続けるループがあります。受信側でエラー確率を導入するまで、すべてが機能します。
意図的にパケットを受信しても送信しないようにしています (失われACKた場合をシミュレートするため)。ACK
驚いたことに、送信側と受信側の両方がハングします。printf()デバッグするために、送信者と受信者の両方のwhileループに a を入れ、何も出力されないため、これを知っています。
なぜこれが起こるのでしょうか?何も送信されなくても、while( と に関係なく) ループは停止sendto()しrecvfrom()ません。