LabVIEWwilliam hill官网
直播中

tonychen

12年用户 183经验值
擅长:测量仪表 嵌入式技术
私信 关注
[问答]

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

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


已退回70积分

回帖(12)

tonychen

2016-6-8 17:58:05
问题:
当UDP包以很高的数据速度(大于2Mb/s)传入时,数据包开始丢失,尤其当CPU还需要处理其他的任务时。



解答: 当UDP数据包传输速率足够大时,Labview将无法维持UDP的套接字缓冲区。这个问题只有当labview把缓冲区中的数据转移到队列或者写入文件中时发生。那么,可以通过增加操作系统的套接字缓冲区的大小来解决这个问题,这样会提供更多的时间让labview来处理缓冲区的数据,保证在套接字缓冲区溢出之前读取数据。
以上是NI的官方回答,我现在遇到了上述问题,我下位机发送的数据速率超过了2Mbps,上位机用读的时候发现UDP数据包大量丢失,NI的回答中说是增加操作系统的套接字缓冲区大小,如何增加操作系统的套接字缓冲区大小?
举报

tonychen

2016-6-8 17:58:34
回答上面这个问题也可以,我找了好多资料,没看到如何更改系统套接字缓冲区大小的方法
举报

hejin515

2016-6-8 19:14:22
不会帮顶。你这方面我不会,我自己也是有问题想了各种办法也无法得到解答,一直被困扰。
举报

李杰

2016-6-10 07:53:49
谢谢分享,好东西大家一起来分享!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分