[Haskell-cafe] Re: Coming up with a better API for Network.Socket.recv

Achim Schneider barsoap at web.de
Thu Feb 26 23:41:10 EST 2009


"Brandon S. Allbery KF8NH" <allbery at ece.cmu.edu> wrote:

> On 2009 Feb 26, at 16:45, Johan Tibell wrote:
> > definition of `recv` would look like. My current thinking is that it
> > would mimic what C/Python/Java does and return a zero length
> > ByteString when EOF is reached.
> 
> Ew.  Isn't this what Maybe is for?
> 
> Anyway, the reason recv doesn't return 0 is that if you have a  
> datagram socket, a zero-length recv is valid and doesn't mean EOF.   
>
My man page says a retval of 0 means that "the peer has performed an
orderly shutdown", which, in the UDP case, means that it has send a
complete datagram... no mention of EOF. A true EOF in the sense of "no
more data will be received" would mean unbinding the socket.


-- 
(c) this sig last receiving data processing entity. Inspect headers
for copyright history. All rights reserved. Copying, hiring, renting,
performance and/or quoting of this signature prohibited.




More information about the Haskell-Cafe mailing list