0

我试图为我的工作(发件人)实现 tcp lwip。我已将 TCP 发送缓冲区空间 TCP_SND_QUEUELEN 配置为 32。但是当丢包时 pcb->snd_queuelen 显示的值大于 32 并且客户端正在断开连接。为什么以及如何解决这个问题?我已将 TCP_MSS 配置为 1160,而 TCP_SND_BUF 为 (TCP_MSS * 16)。任何人请帮忙。

4

1 回答 1

0

获得大于 TCP_SND_QUEUELEN 的值是正常的。已经有进一步的逻辑可以摆脱这种情况。由于在发送数据包时传递了标志 MSG_DONTWAIT,因此发送操作不能被阻塞,如果阻塞会返回错误。这就是关闭套接字的原因。

于 2016-03-17T07:25:25.340 回答