完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请问下,labview的UDP函数如何加大系统缓冲区?
类似于C#中的Socket.ReceiveBufferSize,活着C++setsockopt功能, 目前发现丢包是由于发送过快,缓冲太小,想增加缓冲区,或者谁有更好的方法?拜谢各位大大。 分全都给出去了 |
|
相关推荐
12个回答
|
|
问题:
当UDP包以很高的数据速度(大于2Mb/s)传入时,数据包开始丢失,尤其当CPU还需要处理其他的任务时。 解答: 当UDP数据包传输速率足够大时,Labview将无法维持UDP的套接字缓冲区。这个问题只有当labview把缓冲区中的数据转移到队列或者写入文件中时发生。那么,可以通过增加操作系统的套接字缓冲区的大小来解决这个问题,这样会提供更多的时间让labview来处理缓冲区的数据,保证在套接字缓冲区溢出之前读取数据。 以上是NI的官方回答,我现在遇到了上述问题,我下位机发送的数据速率超过了2Mbps,上位机用读的时候发现UDP数据包大量丢失,NI的回答中说是增加操作系统的套接字缓冲区大小,如何增加操作系统的套接字缓冲区大小? |
|
|
|
回答上面这个问题也可以,我找了好多资料,没看到如何更改系统套接字缓冲区大小的方法
|
|
|
|
不会帮顶。你这方面我不会,我自己也是有问题想了各种办法也无法得到解答,一直被困扰。
|
|
|
|
谢谢分享,好东西大家一起来分享!
|
|
|
|
谢谢!帮顶,这个问题慢慢分析, |
|
|
|
有没有试过队列
|
|
|
|
UDP的系统缓存队列与TCP的相比,有两点显著的不同:
1、UDP没有SendQ。UDP的数据包不会被处理,通过调用sendto()(或者在connect()之后也可以调用send())将数据直接发送。 2、 UDP的数据在缓存队列中是有边缘保证的,也就是说,数据包是有大小的。每次调用recvfrom()(或者在connect()之后调用recv())都会试图接收一个完整的数据包——因此,UDP程序所指定的接收缓存大小应该足够存放每一个UDP数据包,否则,多余的部分就会被抛弃,并且 recvfrom()(或recv())返回一个异常(-1,并且抛出异常代码)。 (在上图中,我们用虚线的数据包边缘表示TCP中的无边缘保证;而UDP中字节之间用虚线隔开表示UDP的数据不会以字节为单位进行传输) 此外,UDP的RecvQ还可能存在于TCP的第三个不同:我们说,UCP是无连接的,当然,我们也可以调用connect()将UDP连接起来,但是在默认无连接的情况下,UDP的RecvQ中可以缓存来自所有远程地址的数据包——这不仅仅在很多时候很不方便,如果我们只希望接收一个特定地址的数据,比如作为客户端只希望接收来自服务器的数据;而且,因为这个缓存可以被任何信息进入,从而也是一个安全隐患,很可能这个缓存在短时间内就会被垃圾信息所填满。 |
|
|
|
http://digital.ni.com/public.nsf/allkb/D5AC7E8AE545322D8625730100604F2D?OpenDocument你可以看看这个链接,增加Socket缓冲区大小的,我觉得还是会丢包,只是减少丢包的概率而已,还可以调用第三方工具WinPcap,这个方法好像好些,但是我没有试
|
|
|
|
问题解决了。但是没有用labview实现。目前用的其他的开发工具实现的。
|
|
|
|
我也碰到过类似的问题,无解。
|
|
|
|
qiangren0523 发表于 2016-9-7 10:14 非常非常抱歉,我很久没上论坛了。这个问题我没有用你提供的NI的资料来解决,用其他的方法解决的, 但是你提供的这个方法其实非常好。 非常感谢,如果谁还有类似疑问,可以用这个链接提供的方法来实现。 |
|
|
|
tonychen899 发表于 2017-10-12 14:02 您好,想问一下您是用什么方法解决的哈? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
682 浏览 1 评论
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1970 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1590 浏览 0 评论
1784 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
4164 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 20:08 , Processed in 0.673127 second(s), Total 66, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号