当前位置: 首页 > news >正文

北京专业企业网站建设全国造价工程师管理系统官网

北京专业企业网站建设,全国造价工程师管理系统官网,wordpress如何打包成app,国外的技术社区在前两篇文章里,我们探讨了不少UDP丢包的解决方案。经过几年的摸索测试,其实方法非常简单, 无需修改代码。 1. Windows 下设置UDP缓存 这个方法可以一劳永逸解决UDP的收发丢包问题,只要添加注册表项目并重启即可。即使用Qt的信号与槽&#…

在前两篇文章里,我们探讨了不少UDP丢包的解决方案。经过几年的摸索测试,其实方法非常简单, 无需修改代码。

1. Windows 下设置UDP缓存

这个方法可以一劳永逸解决UDP的收发丢包问题,只要添加注册表项目并重启即可。即使用Qt的信号与槽,QUdpSocket用信号-槽在Debug模式下也一包不丢。把下文存储为“udp.reg”,而后双击,即可修改注册表。

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]
"DefaultReceiveWindow"=dword:00100000
"FastSendDatagramThreshold"=dword:00002800
"DefaultSendWindow"=dword:00100000

设置好后,即使在Debug模式下,也一包不丢:

qtcpp_demo/udp_loss_test/build/debug/udp_loss_test.exe
Start...
QUdpSocket LOOP:Send 10000, Recv 10000, Lost 0.
Start...
QUdpSocket Signal and Slots:Send 10000, Recv 10000, Lost 0.
Start...
Local Socket :Send 10000, Recv 10000, Lost 0.
Finished sending. Closing socket.
Exiting.

2. Linux 下设置UDP缓存

Linux 下,默认的缓存已经足够了,Debug版本也不会丢包。如果需要,则设置缓存:

sudo sysctl -w net.core.rmem_default=100000
net.core.rmem_default = 100000
sudo sysctl -w net.core.rmem_max=1000000
net.core.rmem_max = 1000000

参考:
https://www.baeldung.com/linux/udp-socket-buffer

3. 代码级别的设置

想要单独用代码设置1个套接字的缓存,则使用:
(参考:https://blog.csdn.net/test1280/article/details/79776938)

    int  rcvBufSize = 1024*1024*16int optlen = sizeof(rcvBufSize);if (setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &rcvBufSize, optlen) < 0){printf("setsockopt error=%d(%s)!!!\n", errno, strerror(errno));goto error;}printf("set udp socket(%d) recv buff size to %d OK!!!\n", sockfd, rcvBufSize);

4. 测试工程

测试工程参考:

https://gitcode.net/coloreaglestdio/qtcpp_demo/-/tree/master/udp_loss_test

5 效果

在上网本Intel® Celeron® CPU J1800 @ 2.41GHz 2.41 GHz下,Qt 6.8.0 MINGW64 Debug模式,

Starting C:\projects\qtcpp_demo\udp_loss_test\build\Desktop_Qt_6_8_0_shared_MinGW_w64_UCRT64_MSYS2-Debug\debug\udp_loss_test.exe...
Start...
QUdpSocket LOOP:Send 10000, Recv 10000, Lost 0.
Start...
QUdpSocket Signal and Slots:Send 10000, Recv 10000, Lost 0.
Start...
Local Socket :Send 10000, Recv 10000, Lost 0.
Finished sending. Closing socket.
Exiting.

UDP

http://www.yayakq.cn/news/153487/

相关文章:

  • 做网站找我们北京建站公司排名首推万维科技
  • 免费发布信息网站大全手机网站免费制作平台有哪些
  • 四线城市做网站建设怎么样app和手机网站的区别
  • 如何将自己做的网站放到网上去wordpress共用用户数据
  • 沈阳网站公司哪个好西宁网站建设建站
  • 一个外国人做汉字网站ip做网站域名
  • 潮流资讯类网站建设策划宠物网站项目
  • 宁波做网站首荐荣盛网络佛山 网站设计公司
  • 中国建设银行个人网站银行浩方网络网站建设
  • 网站服务器有哪些类型有哪些类型有哪些类型有哪些类型wordpress 翻译软件
  • 58同城网站模板网络推广有哪些途径
  • 垂直门户网站怎么做代理注册公司怎么找
  • 大连做网站开发的公司深圳品牌建网站
  • 网站建设毕业设计摘要中国建设银行建银购网站
  • 做网站在哪里做公司做网站开发流程
  • 查网站开通时间百度广告投放平台叫什么
  • 做网站怎么保证商品是正品设计之家下载
  • 网站建设顶呱呱网站开发补充合同
  • 网站首页是什么意思企业建站电话多少
  • 建设电子书阅读网站网页设计做一个介绍自己的的网站
  • 运动鞋官方网站建设计划书网络推广的网站有哪些
  • 公司的网站建设注意点怎么做网站维护宣传
  • 网站建设的流程该怎么确定wordpress wp_loginout
  • 广州做网站公司seo销售话术开场白
  • 最新有限公司网站软件高端开发
  • 网站设计服务合同外贸建站效果
  • seo整站优化方案案例公司官网怎么弄
  • 网站开发需要用到的技术论文中小企业的网站建设
  • 珠海h5建站专门做当归的网站
  • 渭南做网站的公司电话做网站是不是要有数据库