gpt4 book ai didi

c++ - 数据包定时问题

转载 作者:行者123 更新时间:2023-11-30 02:08:11 25 4
gpt4 key购买 nike

我有一个客户端,每 8 秒会向服务器发送一个数据包。如果服务器检测到数据包发送速度太快,它将断开客户端。在我调用 Sleep(8000) 的客户端中;在发送数据包之前。在服务器端我使用 GetTickCount();计算数据包之间的时间。我希望这可以毫无问题地工作,但我总是断开连接。

我使用 WireShark 检查数据包时间,这是我得到的:数据包#时间17 8.65606472 16.957240115 24.764741

24.764741 - 16.957240 = 7.807501 < 8 是我断开连接的原因。我不明白这一点,因为在我调用 Sleep(8000) 的客户端中;所以它应该每 8 秒或更长时间发送一次数据包。

第二个数据包晚了 0.3 秒,第三个数据包早了大约 0.2 秒。有没有办法及时发送这些数据包?

最佳答案

建议您不要过分依赖时钟精度并注意延迟来源的答案是正确的。

但是,您超出 200 毫秒的事实让我推测您正在使用 TCP,并且您没有关闭 Nagle 算法。对于时间敏感的协议(protocol),您应该将套接字设置为启用 TCP_NODELAY。

所有其余的 TCP 延迟警告都适用;你真的不知道事情什么时候会发生,你需要在你的协议(protocol)中处理它。

关于c++ - 数据包定时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com