我有一个服务器 - 客户端应用程序,其中应用程序的一般用途是让一个客户端同时连接到多个服务器。客户端请求每台服务器开始在服务器本地开始记录数据,从DateTime
某些TimeSpan
开始。提出请求后,客户端与服务器断开连接。然后,一段时间后,客户端重新连接到服务器以检索记录的数据。为了让客户正确解析记录的数据,所有服务器之间的时间参考必须匹配(在某种合理的准确度内,比如说1秒)。跨多台计算机的DateTime同步
所以我需要能够实现在记录期间该客户端引用的所有服务器的同步时间。
我不能保证服务器在线(它们可能只在本地局域网上),因此我不能让它们在UTC时间轮询一些互联网数据库。我无法保证客户在整个录音过程中都保持连接,因此我不能让客户不断地发送时间作为参考。
我想这只剩下一个选项:客户端必须告诉每个服务器它认为时间是什么时候设置记录,服务器必须找出当时和他们认为时间之间的差异。然后服务器必须将该增量应用于任何记录的数据。
我担心这种方法。它会在很长一段时间内保持准确的时间,比如10天吗?如果其中一台服务器无法保持良好时间,三角洲能否随时间漂移?
或者,有没有更好的方法来做到这一点?
我建议你重新考虑一下你的vasic假设:你想要电脑,可能无法正确保持时间,做出基于时间的desicions。还是我得到这个错误? –
我完全同意。不幸的是,我无法控制安装我的软件的硬件。硬件有可能是坏的CMOS或者无法保持时间。在没有互联网连接的情况下保持准确的时间实际上并非微不足道。漂移的百分比可能会惊人地高。 –
这就是我的意思:如果你不能保证计时,你不能保证准确的时间desicions。 –