Do send(2) and recv(2) always send and receive complete messages?
    Mark-Jason Dominus 
    mjd at saul.cis.upenn.edu
       
    Fri May 10 06:48:11 AEST 1991
    
    
  
I am programming under SunOS 4.1.1.
    If I try to read a 256-byte message with `recv', can `recv' return
without having read all 256 bytes, the way `read' can?  Or is `recv'
guaranteed to block until 256 bytes of data arrive?  The man page for
`socket(2)' seems to imply the former, but I'm not sure.
    If I use `send' to send a 256-byte message, will the entire message
necessarily be sent as a single packet?  If I am using UDP with the
SOCK_DGRAM abstraction, and I send a 256-byte message, I know I should
expect to deal with lost packets.  Will a lost packet necessarily
contain an entire message, or is it possible to lose part of a single
message due to a dropped packet?
    The man page suggests that messages sent with `send' will be sent as
single datagrams, as long as they are sufficiently short.  How short
must they be?
--
   Nihil tam absurde dici potest, quod non dicatur ab aliquo philosophorum.
Mark-Jason Dominus 	  			    mjd at central.cis.upenn.edu 
    
    
More information about the Comp.unix.questions
mailing list