我正在用Java做一个多人项目,我正在尝试改进我如何收集我的延迟测量结果。
我目前的设置是以固定的时间间隔发送一批UDP数据包,服务器会给这些数据包加上时间戳并返回,然后计算并记录延迟。我取了一些样本,然后计算出平均值,以获得延迟。
这看起来像是计算客户端延迟的合理解决方案吗?
发布于 2011-03-26 00:42:52
您还可以为游戏协议中使用的数据包添加时间戳。因此,您将有更多的数据来集成您的统计数据。(此方法对于避免额外的数据突发导致的开销也很有用。您只需使用已交换的数据进行统计)
您还可以开始使用其他度量标准(例如方差),以便更准确地估计连接质量。
发布于 2011-03-26 00:40:54
我会让客户端为传出的数据包加上时间戳,并让响应保留原来的时间戳。通过这种方式,您可以计算往返延迟,同时避免服务器和客户端时钟不完全同步导致的任何问题。
发布于 2011-03-26 00:44:57
如果你还没有真正开始你的项目,考虑使用像KryoNet这样的网络框架,它具有远程管理接口和高效的序列化,并且可以使用UDP自动发送ping请求。您可以很容易地获取ping时间值。
https://stackoverflow.com/questions/5435384
复制相似问题