tcp send成功一段时间后,send成功却无法再发送数据。

最近调试程序遇到一个问题:我作为客户端,设备作为服务端,向设备发送流媒体数据包,之前一直正常,但一段时间后设备接收显示不正常,此时检测发送端程序显示send返回值正常,但是wireshark抓包未看到数据。

查找过程:

 本着先怀疑自己程序的问题的原则,在发送端做了很多测试,包括组包,sleep,但无法解决问题。后来再增加一个TCP测试工具作为接收端,发送端同时向设备和测试工具发送数据,当设备接收异常的时候,观察测试工具,测试工具一直接收是正常的,但此时还是无法证实是设备的问题。

 

重新抓包,一直抓和设备通信的数据包,一开始发送数据正常,一段时间后当设备异常时,此时发现设备返回TCP ZeroWindow,证实了是设备缓冲区满了,故无法继续发送数据,而本地发送缓冲区很大,所以send一直显示正常,实际无法再向设备发送数据。待设备端优化再调试。

 

 

【TCP window Full】表示发送方暂时没办法再发送数据

【TCP zerowindow】表示发送方暂时没办法再接收数据

,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值