Я разрабатывал симулятор датчика, с которым работаю. Я уже сделал это для Linux. Я использовал сокет AF_PACKET и смог добиться скорости передачи данных 10 Гбит/с. Я начал с того же подхода в Windows, что и Winsock, но потом понял, что они не позволяют мне создавать сокет AF_PACKET. Выход датчика представляет собой специальный пакет Ethernet II. которым я не могу поделиться. Я отправляю Jumbo-пакеты. Я не могу поделиться своим кодом также из-за соглашения о неразглашении. Но я могу поделиться кодом, который я использовал для тестирования pcap. Подскажите, пожалуйста, можно ли что-нибудь сделать, чтобы увеличить скорость передачи данных. Я не очень хорошо знаком с Windows, поэтому, если я могу изменить что-то в настройках Windows, чтобы повысить скорость передачи данных, поделитесь этим.
Код: Выделить всё
#include
#include
#include
#include
void sendLargePackets(const uint8_t* interfaceMAC, const char* interfaceName) {
char errbuf[PCAP_ERRBUF_SIZE];
pcap_t* handle = pcap_create(interfaceName, errbuf);
if (handle == nullptr) {
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/78706646/unable-to-achieve-10gbps-data-rate-with-npcap[/url]