pcap_sendpacket завершается с ошибкой "отправить: попробуйте еще раз"

Я пытаюсь отправить пакеты, используя pcap_sendpacket api в цикле while, и я успешно отправил пакеты. Я добавил немного сна, чтобы контролировать скорость отправки.

Теперь, если я удаляю сон и пытаюсь отправить так быстро, как могу, я сталкиваюсь с ошибкой в ​​pcap_sendpacket api, говоря "send: try again" для половины пакетов. Я хочу знать, почему это именно так. Могу ли я узнать об этом больше?

Я проверил справочные страницы и sendpackets возвращает -1 для ошибки и с pcap_geterr я получаю сообщение выше. Возвращаемое значение -1, мало говорит о том, почему его не удалось. Я проверил библиотеку pacp, но не смог увидеть ни одного такого сообщения об ошибке. Как действовать дальше?

1 ответ

Возможно, вы пытаетесь отправить пакеты быстрее, чем они могут сделать это в сети, в операционной системе, где вызов, используемый для отправки необработанных пакетов, не блокируется, если какой-либо буфер, который он использует, заполнен, и вы пытаетесь отправить другой пакет.

Возможно, вам придется вставить короткие задержки между pcap_sendpacket() звонки.

Другие вопросы по тегам