On Fri, Oct 12, 2007 at 11:29:26AM +0100, Andy Green wrote: > Somebody in the thread at some point said: > > > The SOCK_DGRAM is because I have small packets flowing that I do not > > want fragmented but do not mind if they get lost, .... but then inside a > > machine that does not matter. However with SOCK_STREAM I get zero length > > messages but still ready to read continuously!!! See attached! > > Why don't you try removing the O_NONBLOCK since you test with select... > > fcntl(fd[0], F_SETFL, fcntl(fd[0], F_GETFL, 0) | O_NONBLOCK); > fcntl(fd[1], F_SETFL, fcntl(fd[1], F_GETFL, 0) | O_NONBLOCK); In some instances it is possible to select to return OK and an operation then blocks. So it is always best to use select/poll, have the fds set non-block, and check for EINTR/EAGAIN. -- lfr 0/0
Attachment:
pgpVv3hr9LpvR.pgp
Description: PGP signature