【发布时间】:2013-10-28 14:43:42
【问题描述】:
我正在实施一个基于 UDP 的停止等待 ARQ。我正在尝试模拟错误概率。
在发送者和接收者中,我都有一个while() 循环来继续发送和接收。一切正常,直到我在接收端引入错误概率。
我故意让接收方即使收到包也不发送ACK(模拟ACK丢失的情况)。
让我吃惊的是发送者和接收者都挂了!我知道这一点是因为为了调试,我在发送者和接收者的 while 循环中都放了一个 printf() 并且没有打印任何内容。
为什么会这样?即使没有传输任何内容,while 循环(独立于sendto() 和recvfrom())也不应该停止。
【问题讨论】: