UDP接收大量数据,如何避免或减少掉包???

vbcrack 2007-08-01 12:44:46
如题:程序应用于Windows下
方法1:设置接收缓冲区的大小;在缓冲区被写满后提交系统消息;
方法2:发送UDP大包;
方法3:暂时未想到^-^;

请指教!
...全文
1409 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCBPLC 2008-08-05
  • 打赏
  • 举报
回复
用主/从应答方式通讯一问一答就不会丢包,
丢包的原因:一方单厢情愿的大量发送,另一边来不及处理,
要双方一问一答和谐的通讯;

vbcrack 2007-08-12
  • 打赏
  • 举报
回复
压缩算法??

能具体一点吗
MEFULEU 2007-08-03
  • 打赏
  • 举报
回复
压缩算法~
vbcrack 2007-08-03
  • 打赏
  • 举报
回复
有更好,更实际的解决办法吗??
等待……
ERR0RC0DE 2007-08-02
  • 打赏
  • 举报
回复
>>猜想是因为接收的UDP包数量太多,让系统忙不过来

我觉得是这个原因。最好的方法是将优化或改良收到包后的处理,或者说收包后压栈,让其它线程去处理这些包。

>>所以想通过修改接收缓冲区,让多个UDP包收到后才通知系统来取出接收缓冲区的数据,这样就可以提高接收的效率,不知道是否可行???

也是个方法,不过个人觉得这个不能解决最终问题。
wanglovec 2007-08-02
  • 打赏
  • 举报
回复
方法1 : 缓冲区 开大点

方法2: 用一个高优先级的 线程来专门接受
wanglovec 2007-08-02
  • 打赏
  • 举报
回复
来不及接受 就被覆盖掉了
vbcrack 2007-08-01
  • 打赏
  • 举报
回复
从系统的效率来看,怎么做比较合理??

在windows下,可以增大接收缓冲区来减少系统消息的开销,提高接收的效率吗?
i_love_pc 2007-08-01
  • 打赏
  • 举报
回复
UDP包的长度不宜过大
我不懂电脑 2007-08-01
  • 打赏
  • 举报
回复
在局域网内,一般UDP效果还是不错的。
constantine 2007-08-01
  • 打赏
  • 举报
回复
有一种可能,你的缓冲区太小,数据还没接收就给你新的数据覆盖了
另512太小了
MPTD_Fire 2007-08-01
  • 打赏
  • 举报
回复
提高硬件性能
vbcrack 2007-08-01
  • 打赏
  • 举报
回复
发送端:我用timer和for来不断的发送512字节的UDP包
接收端:怎么来提高接收的效率,用sniffer可以看到发送的包都到达了接收端PC,但我的接收端程序却不能全部收到,猜想是因为接收的UDP包数量太多,让系统忙不过来,所以想通过修改接收缓冲区,让多个UDP包收到后才通知系统来取出接收缓冲区的数据,这样就可以提高接收的效率,不知道是否可行??

constantine 2007-08-01
  • 打赏
  • 举报
回复
包的大小不要大于MTU,也不要太小。不过这些好像都跟掉包没有关系。
更不会因为你的接收缓冲区大就不掉包,要知道包根本就没到你的pc,你的缓冲区就是比天大也枉然。

1,317

社区成员

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

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