首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++丢失了实际延迟的UDP数据包。

C++丢失了实际延迟的UDP数据包。
EN

Stack Overflow用户
提问于 2018-01-08 19:26:42
回答 3查看 452关注 0票数 0

我有一个连接echo服务器和测试客户端的UDP连接。测试客户端不断发送数据包,并等待大约一秒钟才能收到数据包。如果无法获取数据包,则假定该数据包已丢失,并发送另一个数据包。大多数数据包的发送和接收都是成功的,但其中一些假定丢失的数据包将在发送下一个数据包后在客户端接收到。实际上,它们是延迟接收的。我的发送和接收函数运行在不同的线程上。如何消除这些延迟的数据包?(我的程序在我的本地主机上运行-因此丢失数据包是不合理的)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-23 19:11:01

谢谢大家。

接收时select延迟应小于main中等待接收线程包的时间

票数 0
EN

Stack Overflow用户

发布于 2018-01-08 19:33:39

您很可能无法防止包延迟(可能是由于网络接口、内核、应用程序堆栈中的缓冲区)。UDP是不可靠的,如果你需要确保每个包都被传送,你通常应该使用TCP。否则,将有一些选项,比如使用序列号或更复杂的协议实现,以确保您不会失序(比如每个包的确认)。

不过,您所描述的听起来更像是使用TCP。

票数 0
EN

Stack Overflow用户

发布于 2018-01-08 19:32:42

如果网络拥塞或启用了代理/防火墙,就会发生这种情况。检查网络信号强度。如果在本地网络中启用了任何防火墙设置,则将其删除。在您的路由器中切换到具有良好强度的最佳通道。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48149364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档