pcap_sendpacket завершается с ошибкой "отправить: попробуйте еще раз"
Я пытаюсь отправить пакеты, используя pcap_sendpacket api в цикле while, и я успешно отправил пакеты. Я добавил немного сна, чтобы контролировать скорость отправки.
Теперь, если я удаляю сон и пытаюсь отправить так быстро, как могу, я сталкиваюсь с ошибкой в pcap_sendpacket api, говоря "send: try again"
для половины пакетов. Я хочу знать, почему это именно так. Могу ли я узнать об этом больше?
Я проверил справочные страницы и sendpackets возвращает -1 для ошибки и с pcap_geterr я получаю сообщение выше. Возвращаемое значение -1, мало говорит о том, почему его не удалось. Я проверил библиотеку pacp, но не смог увидеть ни одного такого сообщения об ошибке. Как действовать дальше?
1 ответ
Возможно, вы пытаетесь отправить пакеты быстрее, чем они могут сделать это в сети, в операционной системе, где вызов, используемый для отправки необработанных пакетов, не блокируется, если какой-либо буфер, который он использует, заполнен, и вы пытаетесь отправить другой пакет.
Возможно, вам придется вставить короткие задержки между pcap_sendpacket()
звонки.