1

我正在开发客户端/服务器软件,并且正在寻找使客户端时钟与服务器时钟保持同步的最佳方法。

当然,我不能使用NTP,因为我不想碰系统时钟。我只是想计算一个时间间隔,以便我可以将它添加到从服务器接收到的每个日期时间中,以将其转换为“本地时间”

我知道的是:

  • 我使用 GMT 时间处理 TimeZone 问题

  • 服务器在连接时将其当前时间发送给客户端,客户端从其时间中减去服务器时间以计算时间间隔。

当网络延迟恒定时,这很有效(阅读“我的局域网”......)

不幸的是,我希望我的软件可以在 Internet 上运行,甚至可以在移动客户端上运行,我已经见证了长达1 分钟的延迟变化。

对于我正在开发的软件,这样的滞后是不可接受的。

计算客户端/服务器时间间隔的好策略是什么?


最后一件事:我可以以两种方式发送消息(客户端到服务器和服务器到客户端)

这可能无关紧要,但这背后的技术是一个.net WCF客户端,它使用带有一些轮询的httpbinding

4

2 回答 2

1

为什么不能使用 NTP?当然 ntp 的默认设置是设置系统时间,但这不是强制性的:

$ ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset -0.102597, delay 0.05426
 2 Mar 11:44:36 ntpdate[12239]: adjust time server 91.189.94.4 offset -0.102597 sec
于 2009-03-02T10:45:58.703 回答
0

您可以定期 ping 服务器以计算延迟。我不认为你可以通过互联网真正接近。

于 2009-03-02T10:34:43.083 回答