2015-10-14 59 views
1

我剛剛實現了我的第一個UDP服務器/客戶端。服務器在localhost上。 我發送64kb的數據從客戶端到服務器,服務器應該發送回。然後,客戶端檢查64kb中有多少仍然完整,並且都是。總是。 這種行爲的可能原因是什麼?我期待着至少 - 一些 - dataloss。通過本地主機UDP協議可能導致數據丟失的原因是什麼?

客戶端代碼:http://pastebin.com/5HLkfcqS 服務器代碼:http://pastebin.com/YrhfJAGb

PS:這裏的網絡編程新手,所以請不要太苛刻。我找不到我的問題的答案。

回答

3

你沒有看到任何丟失數據報的原因是你的網絡堆棧根本沒有遇到任何麻煩。 您的本地主機連接可以輕鬆應對您提供的內容,本地主機連接能夠在體面的CPU上每秒處理幾百兆字節的數據。

要查看丟棄的數據報,您應該增加干擾的概率。你有幾個機會:

  • 增加網絡上的負載
  • 忙你的其他任務CPU
  • 使用實機
  • 之間「真正的」網絡和數據傳輸通過DSL運行代碼線
  • 設置虛擬機和模擬網絡中斷(VMware Workstation的是能夠做到這一點)

,這可能是一個int eresting閱讀:What would cause UDP packets to be dropped when being sent to localhost?

相關問題