2010-11-29 98 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?似乎擁有所有必需的流行語

相關問題