Problem with socketpair , AF_UNIX and select call - can anybody through any light on this!

Luciano Rocha strange at nsk.no-ip.org
Fri Oct 12 10:30:40 UTC 2007


On Fri, Oct 12, 2007 at 11:25:34AM +0100, Howard Wilkinson wrote:
>  Luciano Rocha wrote:
> > ......
> > Is there a reason for using SOCK_DGRAM instead of the usual SOCK_STREAM?
> > The latter will make the recv return 0, indicating the other end closed
> > the connection, as it did happen, as one peers exits before the other
> > select(2)s:
> >
> > $ ./socketpair server - Socket is ready to write
> > server - Socket is not ready to read
> > exited: 14520
> > master - Socket is ready to write
> > master - Socket is ready to read
> > master - recv - Resource temporarily unavailable(11)
> >
> > This could be a bug, or standard behaviour for disconnected datagram
> > sockets (I don't know enough of the standards).
> >
> >   
>  I attach a slightly improved version. This sleeps for an hour on both sides. 
>  I have tried removing the MSG_DONTWAIT but still get the same response.
> 
>  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!

Yes, that means the other end closed the connection. EOF isn't set in
efds, but in rds.

Also, see poll(2) if you'll be waiting on a small number of file
descriptors.

-- 
lfr
0/0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.fedoraproject.org/pipermail/users/attachments/20071012/cfed998a/attachment-0001.bin 


More information about the users mailing list