On May 27, 2013, at 7:26 AM, Asier Martínez <[email protected]> wrote:
> I'm trying to achieve a portable way of reading from multiple pcap devices in > non blocking. > As far as I know, on Windows select() function it's nos usable with Winpcap > because there is no file descriptor for that purposes available into the > library, and this functionality must be implemented obtain a win32 HANDLE > with pcap_getevent() and wait on it with > WaitForSingleObject/MultipleObjects(Ex). That's the correct way to do that on Windows. > On the other hand, I read on release changelog on Winpcap.org: > > Version 3.01 alpha > • pcap_fileno returns a valid description also in case of a remote > capture, so that the'select()' function can be used to check if packets are > waiting to be read WinPcap is a port of libpcap to Windows, and shares a lot of code with libpcap; the remote capture code can work on UN*X as well as on Windows. That particular changelog item probably refers to the remote capture code on UN*X. > ¿What is the most portable ( and correct ) approach to read from multiple > interfaces with winpcap ? There isn't one. There's one that works on UN*X (except when it doesn't, e.g. BPF only works with select() with newer versions of the various *BSDs and OS X, and in some OS versions, the workaround for that doesn't work), namely using select(), and and there's one that works on Windows, namely WaitFor.... > pcap_fileno returns a valid descriptor or not? On Windows, it happens to return a HANDLE (assuming a HANDLE fits in an int), but it's not necessarily the HANDLE for something on which you can do a WaitFor.... _______________________________________________ Winpcap-users mailing list [email protected] https://www.winpcap.org/mailman/listinfo/winpcap-users
