2012-05-29 118 views
1

我一直在想這個:發送一個「消息」給客戶端,然後每當服務器收到它,我比較發送日期和接收的日期,然後我會得到ms那裏。檢查客戶端和服務器之間的延遲

但我的問題是,有沒有其他有效的方法來做到這一點?

+0

如果我可以問什麼語言? – Digitalis

+0

使用Qt庫的C++。 – Blastcore

+0

黨,不知道這一點,雖然這可能會幫助你進一步追求。 http://stackoverflow.com/questions/305615/timers-to-measure-latency – Digitalis

回答

2

至於基本概念:

只需發出一個信號(如ping)並等到它返回。執行時間告訴你服務器和客戶端之間的延遲。

然而,這是你需要經常做的事情,以獲得準確的價值。問題在於網絡延遲是高度可變的。

然後再次,這樣做可能根本不可行,因爲除了發送和接收信號之外,還有更多的參與。例如,數據包的實際路由可能會有所不同。

另外,人們會認爲將執行時間除以2會得到精確的結果,但事實並非如此。
服務器到客戶端可能會比返程更快,從而搞砸了結果。

+1

另一件需要考慮的事情是在計時TCP(我假設你使用它,如果你使用UDP時忘記了這個評論),你由於TCP嘗試保持可靠性,客戶端/服務器協商可能會變得非常不同。 – jiveturkey

相關問題