社区
网络及通讯开发
帖子详情
UDP接收大量数据,如何避免或减少掉包???
vbcrack
2007-08-01 12:44:46
如题:程序应用于Windows下
方法1:设置接收缓冲区的大小;在缓冲区被写满后提交系统消息;
方法2:发送UDP大包;
方法3:暂时未想到^-^;
请指教!
...全文
1450
14
打赏
收藏
UDP接收大量数据,如何避免或减少掉包???
如题:程序应用于Windows下 方法1:设置接收缓冲区的大小;在缓冲区被写满后提交系统消息; 方法2:发送UDP大包; 方法3:暂时未想到^-^; 请指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,你的缓冲区就是比天大也枉然。
面试:TCP、
UDP
如何解决丢包问题
TCP、
UDP
如何解决丢包问题。TCP:基于
数据
块传输/
数据
分片、对失序
数据
包重新排序以及去重、流量控制(滑动窗口)、拥塞控制、自主重传ARQ;
UDP
:程序执行后马上开始监听、控制报文大小、每个分割块的长度小于MTU
使用 Qt 获取
UDP
数据
并显示成图片
一个项目,要
接收
UDP
数据
包,解析并获取其中的
数据
,主要根据解析出来的行号和序号将
数据
拼接起来,然后将拼接起来的
数据
(最重要的
数据
是 R、G、B 三个通道的像素值)显示在窗口中。考虑到每秒钟要
接收
的
数据
包的数量较大,Python 的处理速度可能没有那么快,而且之前对 Qt 也比较熟悉了,所以用Qt 作为客户端
接收
处理
数据
包,用近期学习的 Python 模拟发送
数据
包。
数据
格式 在 TCP/I...
udp
如何传输大
数据
附
udp
高速传输技术解决方案
UDP
(用户
数据
报协议)是网络上最常用的
数据
传输方式之一。通常在讨论中会将
UDP
与另一种常用的通信协议TCP一起考虑。
UDP
和TCP各有优势和劣势,根据不同情况选择合适的协议以最大限度地发挥其优点并
减少
其缺点。
TCP是什么、
UDP
是什么,它们有什么区别
TCP是互联网上广泛使用的协议,它为各种应用层协议(如HTTP、FTP、SMTP等)提供了可靠的、基于连接的传输服务。在大多数情况下,当我们谈论基于网络的通信时,所使用的协议栈中的传输层协议就是TCP。总的来说,
UDP
是一种简单、高效的传输层协议,适用于对实时性要求较高、但对
数据
可靠性要求不高的应用场景。然后,对于需要可靠传输的场景,还是建议使用TCP协议。
Linux
UDP
编程详解
与TCP(TransmissionControlProtocol,传输控制协议)相比,
UDP
不提供可靠的连接保证、
数据
顺序传递以及流量控制等功能,但它具有更低的开销和更高的传输效率,适用于对实时性要求较高、能容忍少量
数据
丢失的应用场景,如视频流传输、音频广播、在线游戏等。如果需要发送的
数据
超过MTU大小,需要将
数据
进行拆分,分成多个较小的
数据
报进行发送。下面是一个简单的
UDP
服务器示例代码,该服务器绑定到指定的端口,
接收
客户端发送的
数据
,并将
接收
到的
数据
回显给客户端。错误码以指示错误原因。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章