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