UDP丢包,帮帮忙

angeling2009 2012-05-22 03:08:45
想请教一下,我用nmudp做数据接收,发送频率高的时候,接收应答就会大量丢包,由于nmudp是不是不能设置接收缓冲区?
改用idudpserver,idudpserver控件中设置的buffersize具体指什么,我需要可以设置socket的大小,谢谢!
...全文
361 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
☆钱多多☆ 2012-09-23
  • 打赏
  • 举报
回复
帮顶,虚心学习
lobtao 2012-05-27
  • 打赏
  • 举报
回复
使用tcp吧,稳定连接
CCED136 2012-05-26
  • 打赏
  • 举报
回复
在目前国内互联网环境下, 通常 UDP 掉包的情况还是比较少的, 一般都会在 3% 以下。 所以,确保 UDP 收发数据正常,更多的应该是在你的程序里面控制。 加上 UDP 是无连接的通讯, 需要你自己处理 UDP 包的掉包、错包等问题, 然后自己安排重发。
土著巫师 2012-05-25
  • 打赏
  • 举报
回复
建议使用ICS组件,用了N年了,从来没发现过UDP丢包的情况,在LAN里有丢包,那一定是你代码上有问题,与UDP协议可靠不可靠没关系。
我不懂电脑 2012-05-24
  • 打赏
  • 举报
回复
idudpserver不是有buffer吗
angeling2009 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
udp 本身就是不可靠的,会丢包。
接收效率要高于发送才能少丢包。
改用tcp 可靠连接,可以不丢包;
buffersize 指缓冲区大小,缓冲区满放不进数据,你需要建立应用程序缓冲区(链表),把收到的数据快速从udp缓冲区挪到应用程序缓冲区(用独立线程做);应用程序线程再处理应用程序缓冲区中数据。
[/Quote]

buffersize设为32k就足够我用了,但不知道idudpserver这个控件是否支持?
mabaoyes 2012-05-23
  • 打赏
  • 举报
回复
udp 本身就是不可靠的,会丢包。
接收效率要高于发送才能少丢包。
改用tcp 可靠连接,可以不丢包;
buffersize 指缓冲区大小,缓冲区满放不进数据,你需要建立应用程序缓冲区(链表),把收到的数据快速从udp缓冲区挪到应用程序缓冲区(用独立线程做);应用程序线程再处理应用程序缓冲区中数据。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧