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); -Andy