2010-11-29 99 views
2

我有两台通过局域网连接的PC。当用户更改时间(通过我的应用程序)时,我希望第二个时间也更新(或者第二台机器可以轮询第一台机器)。没有服务器,没有互联网。什么是最好的方法来做到这一点?通过TCP/IP在两台PC之间同步时间,没有服务器

操作系统:XP嵌入式。
Framework:.Net 3.5

回答

1

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

  1. 这两个应用程序都实现了一个WCF服务,并且是另一个客户端;
  2. 修改了本地时间的应用程序通知其他人并发送DateTime;
  3. 接收更新的日期时间的应用程序改变本地时间(但要知道,你的应用程序将需要更高的权限才能做到这一点,因为你必须通过非托管代码做到这一点);

如果您并不需要太多的精度就完成了。如果您需要更高的精确度,则需要估计数据发送和到达之间的时间损失,并不是微不足道的。

+0

西蒙娜:嗯,估计时间上的损失,你可以做平。 (两台局域网连接的计算机的平均ping数是相当小的) – Patrick 2010-11-29 14:20:29

1

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

你可能对机器进行设定在一定的时间间隔来调用它。

请注意,我只是试图在正常的Windows机器,但我认为这也将工作嵌入。

编辑:围绕它看起来像XP嵌入式可能支持WMI,如果它和它确实有Win32_OperatingSystem类和它的SetDateTime方法,你的应用程序可以打这个电话给远程PC,你可以避免必须轮询变化。

+0

谢谢,我会给他们一个尝试 – Benjol 2010-11-29 14:53:00

0

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

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

相关问题