我得到了如何计算ping - 当前时间减去数据包的时间戳 - 但是如何创建时间戳呢?我可以使用什么同步时间概念?注意:我使用.NET 2.0。
答案 0 :(得分:1)
这可能就像你发出ping请求时一样简单(稍后会详细解释),你记下当前时间,然后,当服务器/客户端用pong响应时,你记下时间。从ping时间减去pong时间可以获得两个应用程序之间通信的时间。
Wikipedia以下列方式描述ping:
在多人在线视频游戏中,MMO,MMORPG,MMOFPS和FPS ping(不要与每秒帧数混淆)是指玩家的计算机(客户端)与游戏服务器或其他客户端之间的网络延迟(即同行)。这可以定量报告为平均时间(以毫秒为单位)...而不是使用传统的ICMP回应请求和回复数据包来确定ping时间,游戏程序员通常会在现有游戏数据包中构建自己的延迟检测
我喜欢做的是,当我创建客户端和服务器时,我总是用简单的'ping / pong'命令编写。简而言之,一个应用程序在另一个应用程序接收到ping请求时发出ping请求,并发送回pong确认命令。这对于调试很有用,但是对于实际的开发和取决于游戏,我通常会用heart beat来反馈它,以确保一切正常运行。希望有所帮助!