通过Java与C#应用程序同步时间

通过Java与C#应用程序同步时间,c#,java,ntp,C#,Java,Ntp,我有一个运行在Debian OS上的Java应用程序,并与Windows C#server程序通信。我的Java应用程序将通过TCP/IP连接到C#服务器程序。我现在面临的一个问题是,我的Debian操作系统时间总是比Windows服务器系统时间慢。这两个应用程序大多运行在内部网络中,无法访问Internet 我可以知道有什么方法可以同步这两个应用程序之间的时间吗 我读过关于NTP的文章,Java可以使用NTP与C程序同步时间吗 C#程序必须作为NTP服务器运行吗?(有什么办法吗?) 如果只编写

我有一个运行在Debian OS上的Java应用程序,并与Windows C#server程序通信。我的Java应用程序将通过TCP/IP连接到C#服务器程序。我现在面临的一个问题是,我的Debian操作系统时间总是比Windows服务器系统时间慢。这两个应用程序大多运行在内部网络中,无法访问Internet

  • 我可以知道有什么方法可以同步这两个应用程序之间的时间吗
  • 我读过关于NTP的文章,Java可以使用NTP与C程序同步时间吗
  • C#程序必须作为NTP服务器运行吗?(有什么办法吗?)
  • 如果只编写这两个应用程序之间的消息交换,会有任何问题吗

  • 如果有人能提供链接来研究这些实现,我们将不胜感激。

    最好是运行您自己的本地NTP服务器,然后将这两个框分别同步到您的本地NTP服务器。您甚至可以在其中一个盒子上运行服务器。然后,您将有一个通用的时间基准,从它开始操作


    或者,如果您没有访问权限或支持,为什么不在系统之间传输的数据包中发送时间呢。然后,您将获得理解机器之间差异所需的信息。(这不考虑盒子之间的任何传输延迟,但可能足以完成任务。)

    最好运行您自己的本地NTP服务器,然后将两个盒子分别同步到本地NTP服务器。您甚至可以在其中一个盒子上运行服务器。然后,您将有一个通用的时间基准,从它开始操作

    或者,如果您没有访问权限或支持,为什么不在系统之间传输的数据包中发送时间呢。然后,您将获得理解机器之间差异所需的信息。(这不考虑机箱之间的任何传输延迟,但可能足以完成任务。)

    您的网络应该有一个集中式NTP服务,该网络中的所有其他时钟都可以根据该服务精确同步。理想情况下,NTP服务器将根据互联网时间标准同步自身,但无论是否同步,它都应该是整个网络的“唯一真实来源”

    这句古老的格言字面上适用于这里:“一个人带着一块手表总是知道现在几点;一个人带着两块手表永远不会知道。”

    您的应用程序不适合尝试管理时间同步,即使它以某种方式拥有这样做所需的特权。(而且它不应该!!)相反,它应该要求所有系统的时钟必须始终与一个主源正确同步。这应该是它的强制性先决条件,但不是它的个人责任。

    您的网络应该有一个集中的NTP服务,该网络中的所有其他时钟都应与之精确同步。理想情况下,NTP服务器将根据互联网时间标准同步自身,但无论是否同步,它都应该是整个网络的“唯一真实来源”

    这句古老的格言字面上适用于这里:“一个人带着一块手表总是知道现在几点;一个人带着两块手表永远不会知道。”


    您的应用程序不适合尝试管理时间同步,即使它以某种方式拥有这样做所需的特权。(而且它不应该!!)相反,它应该要求所有系统的时钟必须始终与一个主源正确同步。这应该是它的强制性先决条件,但不是它的个人责任。

    是的,Java可以使用NTP。查看Apache Commons Net,如果两个应用程序都在内部网络中运行,并且无法访问Internet怎么办?它们可以通过内部网络相互通信吗?是的,它们可以通过专用IP相互通信。他们的IP是192.168.xxx.xxxYes,Java可以使用NTP。查看Apache Commons Net,如果两个应用程序都在内部网络中运行,并且无法访问Internet怎么办?它们可以通过内部网络相互通信吗?是的,它们可以通过专用IP相互通信。他们的IP地址是192.168.xxx.xxx