2010-02-26 50 views
1

我在Ubuntu 9.10上用C++編寫了一個簡單的UDP客戶端服務器,客戶端向客戶端發送一組服務器。我如何檢查發送它需要多少時間。我需要找到從開始轉移到結束的時間。如何找到通過UDP發送數據所花費的時間

假設我的服務器和客戶端在同一臺機器上,那麼我能以某種方式保存系統時間並找出差異或什麼?

+0

定義「發送它所花費的時間」。你的意思是sendto()調用返回所需的時間,數據包離開網絡接口卡所需的時間,到達服務器所需的時間,......? – stmax 2010-02-26 23:02:49

回答

0

如果您問信息包需要多長時間才能到達服務器,則沒有內置的方法來獲取該信息。

如果服務器發送回覆,則可以在發送請求和獲得回覆之間花費多長時間併除以2(不準確,但體面的估計)。

1

設置服務器立即向客戶端發送回覆。在客戶端測量往返時間。你正在尋找的時間是往返時間的一半。

0

你可以把你發送數據包的時間放在每個數據包的開頭。換句話說,您可以爲包含此信息的所有數據包創建自定義標頭。