Ich schreibe einen lokalen Netzwerk-Scanner unter Windows, um Online-Hosts mit IP-Hilfsfunktionen zu finden, was äquivalent zu nmap -PR
, aber ohne WinPcap ist. Ich weiß SendARP blockiert und sendet eine ARP-Anfrage 3 mal, wenn der Remote-Host nicht antwortet, also verwende ich std::aync
, um einen Thread für jeden Host zu erstellen, aber das Problem ist, ich möchte alle 20ms eine ARP-Anfrage senden, damit es nicht zu viel arp-Pakete in einem sehr sind kurze Zeit.
Zuerst kann ich dies tun, indem ich nach dem Start eines Threads Sleep(20)
aufruft, aber sobald SendARP
in diesen Threads ARP-Anfragen zurücksendet, wenn keine Antworten vom Remote-Host kommen, habe ich keine Kontrolle und sehe viele Anfragen in sehr kurzer Zeit (& lt; 10ms) in Wireshark, also meine Frage ist:
SendARP
asynchron zu machen? SendARP
in Threads steuern? Tags und Links c++ multithreading asynchronous winapi arp