I'm having trouble with kevent() in connection with UDP sockets (6.2-STABLE). Registering an event seems to work, but when UDP packet arrives on the socket, kevent returns with 0. Is there currently a working support for UDP sockets in kqueue/kevent, or does it only apply to TCP sockets ? Thanks, P. Paul Sandys network operations manager http://www.nyct.net/ 212.293.2620
On Feb 7, 2008 1:54 PM, Paul <myj@nyct.net> wrote:> > I'm having trouble with kevent() in connection with UDP sockets > (6.2-STABLE). > > Registering an event seems to work, but when UDP packet arrives on the > socket, kevent returns with 0. > > Is there currently a working support for UDP sockets in kqueue/kevent, or > does it only apply to TCP sockets ?I have a fairly non-trivial application that sends and receives UDP packets with kqueue. Registering output queue events is not usful, but input queue events work just fine for me.
Paul wrote:> > I'm having trouble with kevent() in connection with UDP sockets > (6.2-STABLE). > > Registering an event seems to work, but when UDP packet arrives on the > socket, kevent returns with 0. > > Is there currently a working support for UDP sockets in kqueue/kevent, > or does it only apply to TCP sockets ?I can't recall specifics but I had a working routing daemon skeleton using UDP with kqueue around 5 years ago. I didn't use oneshot, and treated it much like select() i.e. the input event is level triggered, every time you call you should get the event. This is unlike WSAEventSelect() in Windows which is edge triggered. later BMS