У меня есть программа, которая отправляет данные с одного компьютера на другой, используя 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
.
Является ли эта проблема возможности между моим сетевым компонентом и эмуляцией потери пакетов?Или я увижу это и в реальных ситуациях, когда теряется пакет?Какой другой брандмауэр или другое программное обеспечение я могу использовать для эмуляции потери пакетов?