我有一个程序,它使用 UDP(数据大小 150 字节)将数据从一台电脑发送到另一台电脑。该程序是用 delphi 7 编写的(TldUDPClient 和 TldUDPServer 组件用于发送和接收数据)。我需要测试这个程序的 30% 丢包率。
我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
。
是我的网络组件和丢包仿真之间的能力问题吗?或者我会在真实情况下看到丢包的情况吗?我可以使用哪个防火墙或其他软件来模拟丢包?