lwip tcp pcb-> snd_queuelen显示的值大于TCP_SND_QUEUELEN

时间:2016-02-16 12:10:27

标签: tcp lwip

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

1 个答案:

答案 0 :(得分:0)

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