高级会员

- 积分
- 863
- 金钱
- 863
- 注册时间
- 2018-11-2
- 在线时间
- 168 小时
|
1金钱
之前做的一个项目A用单片机作为TCP server,当客户端连接后就开始不停地给客户端发数据,发送的时候插拔网线也没事还能继续传输目前的成功率是100%。今天又有个项目B也有类似需求,数据量还少得多,奇怪的是发800万左右的字节后客户端就收不到数了,但是单片机还能正常接收客户端的数据,客户端重新连接一下又能恢复。为了快速复现故障尝试通过插拔网线来试一试,根据之前经验原本以为插拔网线会没啥影响,结果插拔网线后100%会导致单片机数据发送失败(但是接收功能正常说明连接没断),只有客户端重连才能继续发送。追踪代码发现tcp_sndbuf()函数返回的值一直是80,而我一包数据是1440,很明显发送缓冲区耗尽了。项目B的代码是在项目A的基础上改的,以太网相关的代码那是一个字都没改,我实在是想不通这是为什么。
|
|