我在Debian OS上运行Java应用程序并与Windows C#服务器程序通信。我的Java应用程序将通过TCP / IP连接到C#服务器程序。我现在面临的一个问题是我的Debian OS系统时间总是慢于Windows Server System Time。这两个应用程序大多在内部网络中运行,该网络无法访问Internet。
如果有人可以提供链接来研究实施,将非常感激。
答案 0 :(得分:4)
最好的方法是运行您自己的本地NTP服务器,然后将这两个盒子独立地同步到本地NTP服务器。您甚至可以在其中一个框上运行服务器。然后,您将有一个共同的时间基准,可以从中运行。
或者,如果您无法访问或支持这样做,为什么不在系统之间传输的数据包中发送时间。然后,您将获得了解机器之间差异所需的信息。 (这没有考虑到盒子之间的任何传输延迟,但它可能足以完成工作。)
答案 1 :(得分:1)
您的网络应具有一个集中式NTP服务,该网络中所有其他时钟可以精确同步。理想情况下,NTP服务器会将自己与互联网时间标准同步,但不管它是否存在,它应该是真实的唯一来源"为您的整个网络。
古老的格言字面意思适用于此:"有一只手表的男人总是知道现在是什么时候;一个有两只手表的男人从来没有。"
您的应用程序尝试管理时间同步是不合适的,即使它以某种方式拥有必要的权限。 (并且不应该 !!)相反,它应该要求所有系统的时钟必须始终与一个主源正确同步。这应该是其强制性先决条件,但不是其个人责任。