LabView UDP如何设置Socket接收缓冲区?

2019-07-17 15:23发布

请问下,labview的UDP函数如何加大系统缓冲区?
类似于C#中的Socket.ReceiveBufferSize,活着C++setsockopt功能,
目前发现丢包是由于发送过快,缓冲太小,想增加缓冲区,或者谁有更好的方法?拜谢各位大大。
分全都给出去了


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
tonychen899
1楼-- · 2019-07-17 17:16
问题:
当UDP包以很高的数据速度(大于2Mb/s)传入时,数据包开始丢失,尤其当CPU还需要处理其他的任务时。



解答: 当UDP数据包传输速率足够大时,Labview将无法维持UDP的套接字缓冲区。这个问题只有当labview把缓冲区中的数据转移到队列或者写入文件中时发生。那么,可以通过增加操作系统的套接字缓冲区的大小来解决这个问题,这样会提供更多的时间让labview来处理缓冲区的数据,保证在套接字缓冲区溢出之前读取数据。
以上是NI的官方回答,我现在遇到了上述问题,我下位机发送的数据速率超过了2Mbps,上位机用读的时候发现UDP数据包大量丢失,NI的回答中说是增加操作系统的套接字缓冲区大小,如何增加操作系统的套接字缓冲区大小?
tonychen899
2楼-- · 2019-07-17 17:53
回答上面这个问题也可以,我找了好多资料,没看到如何更改系统套接字缓冲区大小的方法
hejin515
3楼-- · 2019-07-17 21:55
 精彩回答 2  元偷偷看……
大雪2016
4楼-- · 2019-07-18 01:32
谢谢分享,好东西大家一起来分享!
tonychen899
5楼-- · 2019-07-18 05:33
hejin515 发表于 2016-6-8 19:14
不会帮顶。你这方面我不会,我自己也是有问题想了各种办法也无法得到解答,一直被困扰。

谢谢!帮顶,这个问题慢慢分析,
不过是过客
6楼-- · 2019-07-18 11:16
有没有试过队列

一周热门 更多>