2009-03-02 150 views
1

我正在開發客戶端/服務器軟件,並且正在尋找讓我的客戶端時鐘與服務器時鐘保持同步的最佳方式。如何計算客戶端/服務器時間間隔?

當然,我不能使用NTP,因爲我不想觸摸系統時鐘。我只是想計算timegap這樣我就可以把它添加到從服務器接收到的每一個日期時間把它轉換成一個「本地時間」

我因爲知道做的是:

  • 我使用GMT時間處理TimeZone問題

  • 服務器在連接時向客戶端發送當前時間,並且客戶端從其時間減去服務器時間以計算時間間隔。

這個偉大的工程,當網絡延遲是恆定的(讀「我的網絡」 ...)

不幸的是,我希望我的軟件在互聯網上工作,甚至在移動客戶端,這是我我們目睹了1分鐘內差距達到

對於我正在處理的軟件,這樣的延遲是不可接受的。

什麼是計算客戶端/服務器時間間隔的好策略?


最後一件事:我可以給兩個單向消息(客戶機到服務器和服務器到客戶端)

這也許無關緊要,但是這背後的技術是利用一些的httpbinding一個.NET WCF客戶端輪詢

回答

0

您可以定期ping服務器來計算延遲。我不認爲你可以通過互聯網真正接近。

1

爲什麼你不能使用NTP?當然默認的ntp是設置系統時間,但這不是強制性的:

$ ntpdate -q ntp.ubuntu.com 
server 91.189.94.4, stratum 2, offset -0.102597, delay 0.05426 
2 Mar 11:44:36 ntpdate[12239]: adjust time server 91.189.94.4 offset -0.102597 sec 
相關問題