I am using Winpcap for an application, that needs to listen to the network traffic continuously. While listening, some packets need to be sent on a certain event with minimized delay.

Currently I am using the followin approach:

1. pcap_open_live (blocking=true, timeout=0)
2. pcap_dipatch(cnt=-1)

on event:
3. pcap_breakloop (from separate thread)
4. pcap_sendpacket (from original thread)
5. goto 2


Unfortunately, pcap_breakloop seems not to break the loop promptly. At least in my test implementation on Windows XP (SP3, 32bit) I see a random delay (5-15 sec) between pcap_breakloop and the return of pcap_dispatch (return value is -2 as exepcted).

Any kind of timeout-controlled operation is not really desirable for my kind of application, as this would introduce some systematic delays. Do you see any strictly event-based alternative to sketched approach? What about calling pcap_sendpacket in a separate thread during a running pcap_dispatch? But I have a bad feeling about this idea...

Regards,
  Holger
_______________________________________________
Winpcap-users mailing list
[email protected]
https://www.winpcap.org/mailman/listinfo/winpcap-users

Reply via email to