pcap_sendpacket завершается с ошибкой «отправить: попробуйте еще раз» - PullRequest
0 голосов
/ 05 февраля 2019

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

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

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

1 Ответ

0 голосов
/ 01 марта 2019

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

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

...