2012-11-06 32 views
0

我有一個應用程序正在發送UDP數據包給接收器,如果我這樣做,我應該在發送每個數據包之間有一個延遲,以避免使接收器不堪重負,如何設置延遲時間?發送數據包之間應該有延遲嗎?

注意:我通過不可靠的網絡發送文本文件。

 for(int x = 0; x < len; x++) 
     { 
       send_msg(packet); 
       Thread.sleep(200); //Should I have this? 
     } 
+0

爲什麼你認爲服務器需要延遲?如果網絡不可靠,當服務器沒有收到數據包時,你如何得到通知?如果你需要可靠的傳輸,你爲什麼使用UDP而不是TCP? –

+0

@JimGarrison我正在開發通過UDP進行可靠的數據傳輸,因此接收方會發迴應答,我一直在想,在接收方處理一個數據包時,接收到的數據包將不會被接收,因爲它仍然會處理第一個到達分組。 –

+0

你爲什麼重新發明輪子? TCP不提供你所需要的嗎? –

回答

1

讓操作系統爲您處理時間。發送是阻塞的,所以它將依靠OS緩衝區和相關的東西。包裹將被交付給serer或丟失,但只要他們交付 - 然後同行將被通知。它可能會推遲處理或將數據包放入隊列。