通过TCP / IP同步两台PC之间的时间,没有服务器

时间:2010-11-29 14:04:46

标签: .net communication ethernet

我有两台通过LAN连接的PC。当用户在一个时间(通过我的应用程序)改变时间时,我希望第二个时间也要更新(或者第二个机器可以轮询第一个)。没有服务器,没有互联网。最好的方法是什么?

OS:XP嵌入式。
框架:.Net 3.5

3 个答案:

答案 0 :(得分:1)

如果您不能使用NTP服务器,则必须自己编写。

  1. 这两个应用程序都实现了WCF服务,并且是另一个的客户端;
  2. 修改了本地时间的应用程序通知另一个并发送DateTime;
  3. 接收更新的DateTime的应用程序会更改本地时间(但请注意,您的应用程序需要更高的权限才能执行此操作,因为您必须通过非托管代码执行此操作);
  4. 如果您不需要太多精确度,那么您就完成了。如果您需要更高的精确度,则需要估算数据发送和到达之间的时间损失,这并非易事。

答案 1 :(得分:1)

低技术解决方案可能是在需要更新的计算机上执行命令NET TIME \\[OtherPC] /SET

你可以将机器设置为以一定的间隔调用它。

请注意,我只在普通的Windows机器上试过它,但我认为它也适用于嵌入式。

编辑:环顾四周似乎XP Embedded可能支持WMI,如果确实如此,它确实有Win32_OperatingSystem类和它的SetDateTime方法,你的应用可以调用远程电脑和您可以避免轮询更改。

答案 2 :(得分:0)

是否可以将其中一台机器指定为NTP服务器?因此使用标准的NTP服务器系统,因此您不必自己编写。

虽然我不熟悉XPe,但此链接Got the time?似乎有所有必需的流行语