MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Sockets Library Functions                           recv(3SOCKET)



NAME
     recv, recvfrom, recvmsg - receive a message from a socket

SYNOPSIS
     cc [ flag... ] file... -lsocket  -lnsl  [ library... ]
     #include 
     #include 
     #include 

     ssizet recv(int s, void *buf, sizet len, int flags);


     ssizet recvfrom(int s, void *buf, sizet len, int flags,
          struct sockaddr *from, socklent *fromlen);


     ssizet recvmsg(int s, struct msghdr *msg, int flags);


DESCRIPTION
     The recv(), recvfrom(), and recvmsg() functions are used  to
     receive  messages  from  another  socket.  The  s  socket is
     created with socket(3SOCKET).


     If from is a non-NUL pointer, the  source  address  of  the
     message  is filled in. The value-result parameter fromlen is
     initialized to the size of the buffer associated  with  from
     and  modified  on  return to indicate the actual size of the
     address stored in the buffer. The length of the  message  is
     returned.  If  a  message is too long to fit in the supplied
     buffer, excess bytes may be discarded depending on the  type
     of   socket   from   which  the  message  is  received.  See
     socket(3SOCKET).


     If no messages are available at the socket, the receive call
     waits  for  a  message  to  arrive.  If  the  socket is non-
     blocking, -1 is returned with the  external  variable  errno
     set to EWOULDBLOCK. See fcntl(2).


     For processes on the same host, recvmsg()  can  be  used  to
     receive  a file descriptor from another process, but it can-
     not receive ancillary data. See libxnet(3LIB).


     If a zero-length buffer is specified for a message,  an  EOF
     condition  results  that  is indistinguishable from the suc-
     cessful transfer of a file descriptor. For that reason,  one
     or  more  bytes  of  data  should be provided when recvmsg()
     passes a file descriptor.



SunOS 5.11          Last change: 20 Aug 2007                    1






Sockets Library Functions                           recv(3SOCKET)



     The select(3C) call can be used to determine when more  data
     arrives.


     The flags parameter is formed by an OR operation on  one  or
     more of the following:

     MSGOB         Read any out-of-band  data  present  on  the
                     socket rather than the regular in-band data.


     MSGPEK        Peek at the data present on the socket.  The
                     data  is returned, but not consumed to allow
                     a subsequent receive operation  to  see  the
                     same data.


     MSGWAITAL     Messages are blocked until the  full  amount
                     of  data  requested  is returned. The recv()
                     function can return a smaller amount of data
                     if  a  signal  is  caught, the connection is
                     terminated, MSGPEK is specified, or if  an
                     error is pending for the socket.


     MSGDONTWAIT    Pending messages received on the  connection
                     are  returned.  If  data is unavailable, the
                     function does not block.  This  behavior  is
                     the  equivalent  to specifying ONONBLOCK on
                     the file descriptor of a socket, except that
                     write requests are unaffected.



     The recvmsg() function call uses a msghdr structure  defined
     in    to  minimize the number of directly sup-
     plied parameters.

RETURN VALUES
     Upon  successful  completion,  these  functions  return  the
     number  of bytes received. Otherwise, they return -1 and set
     errno to indicate the error.

ERORS
     The  recv(),  recvfrom(),  and  recvmsg()  functions  return
     errors under the following conditions:

     EBADF           The s file descriptor is invalid.


     EINVAL          The MSGOB flag is set and  no  out-of-band
                     data is available.



SunOS 5.11          Last change: 20 Aug 2007                    2






Sockets Library Functions                           recv(3SOCKET)



     EINTR           The operation is interrupted by the delivery
                     of  a signal before any data is available to
                     be received.


     EIO             An I/O error occurs while  reading  from  or
                     writing to the file system.


     ENOMEM          Insufficient user  memory  is  available  to
                     complete operation.


     ENOSR           Insufficient STREAMS resources are available
                     for the operation to complete.


     ENOTSOCK        s is not a socket.


     ESTALE          A stale NFS file handle exists.


     EWOULDBLOCK     The socket is marked  non-blocking  and  the
                     requested operation would block.


     ECONREFUSED    The requested connection was refused by  the
                     peer.  For  connected IPv4 and IPv6 datagram
                     sockets,  this  indicates  that  the  system
                     received  an  ICMP Destination Port Unreach-
                     able message from the peer.



     The recv() and recvfrom() functions fail under the following
     conditions:

     EINVAL    The len argument overflows a ssizet.



     The recvmsg() function returns errors  under  the  following
     conditions:

     EINVAL    The msgiovlen  member  of  the  msghdr  structure
               pointed  to  by msg is less than or equal to 0, or
               greater than [IOVMAX}. See Intro(2) for a defini-
               tion of [IOVMAX}.






SunOS 5.11          Last change: 20 Aug 2007                    3






Sockets Library Functions                           recv(3SOCKET)



     EINVAL    One of the iovlen values  in  the  msgiov  array
               member  of  the msghdr structure pointed to by msg
               is negative, or the sum of the iovlen  values  in
               the msgiov array overflows a ssizet.


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Committed                   
    
     MT-Level                     Safe                        
    


SEE ALSO
     fcntl(2),     ioctl(2),      read(2),      connect(3SOCKET),
     getsockopt(3SOCKET),        libxnet(3LIB),       select(3C),
     send(3SOCKET),  socket(3SOCKET),   socket.h(3HEAD),   attri-
     butes(5)





























SunOS 5.11          Last change: 20 Aug 2007                    4



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™