近期一个项目中需要使用多任务同时向一个udp套接字发送数据,上位机使用网络调试助手接收数据。
发送数据长度14个字节,每个任务发送10000次,因此理论上上位机应该收到280000个字节。
但是实际测试时发现如下问题:
当两个任务通过udp发送数据的周期小于4ms时,上位机调试助手收到的字节数小于28万。
问题分析:
开始以为是没有将套接字的sendto函数进行互斥保护,结果查资料发现sendto函数是不需要进行互斥保护的。
后来突然想到会不会是网络调试助手接收后显示不过来,于是将网络调试助手的输出打印转向文件,结果发现接收的字节数能够达到28万了,且收到的数据也正确。
总结:
使用网络调试助手需谨慎,建议网络数据使用wireshark进行抓包检查,提高可靠性。
本文探讨了一个项目中遇到的问题:多个任务并发向UDP套接字发送数据时,接收端收到的数据量不足。通过实验发现,问题并非由于代码互斥处理不当,而是与接收端调试工具的性能限制有关。最终推荐使用Wireshark进行更可靠的数据包捕获。
8204

被折叠的 条评论
为什么被折叠?



