首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

VxWorks同时使用TCP和UDP传输稍大数据量,导致send调用阻塞,请大家帮忙。解决办法

2012-03-22 
VxWorks同时使用TCP和UDP传输稍大数据量,导致send调用阻塞,请大家帮忙。ppc8541,引出一个百兆网口和一个千

VxWorks同时使用TCP和UDP传输稍大数据量,导致send调用阻塞,请大家帮忙。
ppc8541,引出一个百兆网口和一个千兆网口。
现在仅使用千兆网口。
在一个任务中接受UDP包(组播),放入缓冲区,优先级高。
另一个任务中将缓冲中的数据通过TCP传给PC机,优先级低。

输入40Mbps码率的数据很快会导致TCP send调用阻塞,不到1分钟。
输入4Mbps码率的数据大约要几个小时,导致send调用阻塞。
用sem同步,信号量释放正常,计数信号量。

两个任务都用阻塞+select方式。

大家看看是为啥?急。

[解决办法]
TCP和UDP是不是用的同一个缓冲区,缓冲区是否存在写满和读为空的现象
[解决办法]

探讨
我把TCPsocket的缓冲设回默认的8192字节,输入80Mbps码率数据,已经跑了两个小时,目前正常。CPU空闲50%左右。
起初设的是250*1024字节,跑不到一分钟TCPsend就阻塞了,UDP接收正常。

缓冲区检查过了,加了保护应该没有问题。

没有加其他处理任务。

调两个任务的优先级没有改善。

热点排行