我有一個程序,使用UDP(數據大小爲150字節)從一臺PC發送數據到另一臺。那 程序寫在德爾福7(TldUDPClient和TldUDPServer組件使用 發送和recive數據)。我需要在30%的數據包丟失情況下測試此程序。udp數據包丟失
我用ipfw
的Windows(從SourceForge下載):
ipfw -f flush
ipfw add pipe 1 ip from any to any out
ipfw pipe 1 config plr 0.3
當我用ping我看到的數據丟失的30%。
當我啓動我的delphi程序,經過一段時間的工作,它返回一個 錯誤:socket error 10004
。錯誤的描述是:中斷函數調用。 阻止操作被WSACancelBlockingCall
的調用中斷。
這是我的網絡組件和丟包仿真之間的能力問題嗎?或者,在真實情況下,我是否也會在丟包的情況下看到?哪個另一個防火牆或其他軟件可用於模擬丟包?
多少數據你發送一個UDP數據包使用UDP?如果它低於底層網絡的數據包大小(UDP數據包保證完全到達或根本沒有,但底層可能有多個網絡數據包(不知道官方名稱)),我可以認爲這可能發生在現實生活中也。 –