gpt4 book ai didi

c++ - 调试网络应用程序和测试同步性?

转载 作者:行者123 更新时间:2023-11-28 07:41:10 24 4
gpt4 key购买 nike

如果我有一个服务器在我的机器上运行,多个客户端在其他网络上运行,测试它们之间同步性的一些概念是什么?我怎么知道客户端何时不同步?
我对游戏设计领域的网络程序员如何做到这一点(或任何连续网络交换应用程序)特别感兴趣,其中实时同步性通常是成功的重要方面。

我可以看到如何通过在不同机器上并排比较在 LAN 上轻松实现这一点......但是一旦你将场景扩展到包括来自外部网络的客户端,我只是不确定如果没有用调试信息阻塞您的消息传递系统,从而有效地改变同步性的方式,没有通过网络传递调试信息。

那么人们有哪些方法可以解决这个问题?
例如,他们是否在发布到国外网络之前简单地在本地网络上诱导/模拟延迟,然后希望最好的结果?我希望有一些更具体的解决方案,但这是我目前正在做的...

最佳答案

当您说同步时,我相信您是在谈论网络延迟。这意味着,本地网络上的客户端可能比国家另一端的客户端更快地获得其游戏信息。正确的?如果是这样,那么我相信您可以查找涵盖此类主题的书籍或论文,但我至少可以为您提供一种方法来检测这种延迟并提供一种管理它的方法。

要检测延迟,您的服务器可以使用一种跟踪路由程序来确定数据到达每个客户端所需的时间。可以在此处找到一个常见的 Linux 程序示例 http://linux.about.com/library/cmd/blcmdl8_traceroute.htm .服务器在处理客户端数据的同时,还可以持续收集延迟统计数据,并将数据提供给客户端。例如,服务器可以更新每个客户端自己的网络延迟以及在游戏中互相玩的一组客户端的最长延迟时间。

然后客户端可以使用延迟差异来确定他们应该何时处理从服务器接收到的数据。例如,服务器告知客户端其网络延迟为 50 毫秒,其组的最大延迟为 300 毫秒。然后客户端知道在处理来自服务器的游戏数据之前等待 250 毫秒。这样,每个客户端几乎同时处理来自服务器的游戏数据。

有许多其他(可能更好)的方法来处理这种情况,但这应该能让您朝着正确的方向开始。

关于c++ - 调试网络应用程序和测试同步性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822913/

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