0
我試圖計算連接的客戶端(服務器 - >客戶端)的延遲我想在我的ping循環期間執行此操作(它測試以查看客戶端是否仍然連接)這裏是我如何ping它(試圖發送數據,如果它失敗客戶端已斷開連接)。計算連接速率(毫秒)(延遲)
while (information.connectionEst)
{
try
{
byte[] data = Encoding.ASCII.GetBytes("");
stream.Write(data, 0, data.Length);
}
catch (Exception e)
{
killConnection();
thread.Abort();
}
}
我假設我需要計算髮送數據包所用的時間。但我不知道該怎麼做。任何幫助將被解僱。
一個簡化的解決方案(假設你正在實現客戶端和服務器)是讓服務器將當前時間發送給客戶端,並讓客戶端將其發回,然後找到差異併除以2(假設對稱連接)。 – Adam
這隻會用於本地主機,或同一時區,但不是嗎?這將有多個連接,希望來自不同的國家。 –
客戶的時間沒有進入它。假設服務器上是9:30:00,客戶端上是5:30。服務器向客戶端發送一個包含「9:30:00」的數據包,客戶端將其發回,服務器接收它。現在服務器上的時間是9:30:01,所以服務器可以推斷出它需要1秒的往返時間,或者每個方向的時間爲0.5秒......您可以通過在發送每個數據包的服務器狀態中存儲時間來實現同樣的目的,但這種方式更簡單(也更骯髒)。 – Adam