【发布时间】:2015-02-04 19:35:44
【问题描述】:
我知道如何计算 ping - 当前时间减去数据包的时间戳 - 但我如何首先创建时间戳?我可以使用什么同步的时间概念?注意:我使用 .NET 2.0。
【问题讨论】:
标签: networking latency
我知道如何计算 ping - 当前时间减去数据包的时间戳 - 但我如何首先创建时间戳?我可以使用什么同步的时间概念?注意:我使用 .NET 2.0。
【问题讨论】:
标签: networking latency
这可能很简单,例如当您发出 ping 请求时(我稍后会更详细地解释这一点),记下当前时间,然后,当服务器/客户端以 pong 响应时,您再次记下时间。从 ping 时间中减去 pong 时间可以得到两个应用程序之间进行通信的时间。
维基百科对 ping 的描述如下:
在多人在线视频游戏中,MMO、MMORPG、MMOFPS 和 FPS ping(不要与每秒帧数混淆)是指玩家计算机(客户端)与游戏服务器或其他客户端(即同行)。这可以定量报告为以毫秒为单位的平均时间......游戏程序员通常不会使用传统的 ICMP 回显请求和回复数据包来确定 ping 时间,而是将自己的延迟检测构建到现有的游戏数据包中
我喜欢做的是,当我创建一个客户端和一个服务器时,我总是写一个简单的“ping/pong”命令。简而言之,一个应用程序发出一个 ping 请求,当另一个应用程序收到它时,它会发回一个 pong 确认命令。这对调试很有用,但对于实际开发和取决于游戏,我通常使用heart beat 来搭载它,以确保一切正常运行。希望对您有所帮助!
【讨论】: