*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> recvfrom (2)              



NAME    [Toc]    [Back]

       recvfrom - Receive messages from sockets

SYNOPSIS    [Toc]    [Back]

       #include <sys/socket.h>

       ssize_t recvfrom(
               int socket,
               void *buffer,
               size_t length,
               int flags,
               struct sockaddr *address,
               socklen_t *address_len );

       [XNS4.0]  The  definition  of  the  recvfrom() function in
       XNS4.0 uses a size_t data type for the address_len parameter
  instead  of  a  socklen_t  data  type as specified in
       XNS5.0 (the previous definition).

       [Tru64 UNIX]  The following definition of  the  recvfrom()
       function does not conform to current standards and is supported
 only for backward compatibility (see standards(5)):
       int recvfrom(
               int socket,
               char *buffer,
               int length,
               int flags,
               struct sockaddr *address,
               int *address_len );

STANDARDS    [Toc]    [Back]

       Interfaces  documented  on  this reference page conform to
       industry standards as follows:

       recvfrom(): XNS5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Specifies the socket file descriptor.  Specifies a pointer
       to the buffer to which  the  message  should  be  written.
       Specifies  the  length (in bytes) of the buffer pointed to
       by the buffer parameter.  Points to a value that  controls
       message reception. The parameter to control message reception
 is formed by the logical OR of one  or  more  of  the
       following  values:  Peeks  at  the incoming message.  Processes
 out-of-band data.  Requests that the function block
       wait  until  the  full  amount  of  data  requested can be
       returned. The function may return a smaller amount of data
       if  a  signal  is  caught,  the  connection is terminated,
       MSG_PEEK was specified, or an error  is  pending  for  the
       socket.   Points  to  a  sockaddr structure, the format of
       which is determined by the  domain  and  by  the  behavior
       requested  for  the  socket.  The sockaddr structure is an
       overlay for a sockaddr_in, sockaddr_un,  sockaddr_in6,  or
       sockaddr_storage structure, depending on which of the supported
 address families is active.

              [Tru64 UNIX]   If the  compile-time  option  _SOCKADDR_LEN
  is defined before the sys/socket.h header
              file is  included,  the  sockaddr  structure  takes
              4.4BSD  behavior,  with  a field for specifying the
              length  of  the  socket  address.  Otherwise,   the
              default 4.3BSD sockaddr structure is used, with the
              length of the socket address assumed to be 14 bytes
              or less.

              If  _SOCKADDR_LEN  is  defined, the 4.3BSD sockaddr
              structure  is  defined  with  the  name  osockaddr.
              Specifies  the  length  of  the  sockaddr structure
              pointed to by the address parameter.

DESCRIPTION    [Toc]    [Back]

       The recvfrom() function permits an application program  to
       receive  messages from unconnected sockets. It is normally
       applied to unconnected sockets because it includes parameters
  that permit a calling program to retrieve the source
       endpoint of received data.

       To obtain the source address of  the  message,  specify  a
       nonzero  value  for  the address parameter. The recvfrom()
       function is called with the address_len parameter  set  to
       the size of the buffer specified by the address parameter.
       On return, this function modifies the address_len  parameter
  to  the actual size in bytes of the address specified
       by the address parameter. The recvfrom() function  returns
       the length of the message written to the buffer pointed to
       by the buffer parameter. When a message is  too  long  for
       the  specified  buffer,  excess  bytes  may  be  truncated
       depending on the type of socket that issued  the  message,
       and depending on which flags are set with the flags parameter.

       When no message is available at the  socket  specified  by
       the  socket parameter, the recvfrom() function waits for a
       message to arrive, unless the socket is nonblocking.  When
       the  socket is nonblocking, errno is set to [EWOULDBLOCK].

       Use the select() and poll() functions  to  determine  when
       more data arrives.

NOTES    [Toc]    [Back]

       [Tru64 UNIX]  When compiled in the X/Open UNIX environment
       or  the  POSIX.1g  socket  environment,   calls   to   the
       recvfrom()  function  are internally renamed by prepending
       _E to the function name. When you are debugging  a  module
       that  includes  the  recvfrom()  function  and  for  which
       defined,  use  _Erecvfrom to refer to the recvfrom() call.
       See standards(5) for further information.

RETURN VALUES    [Toc]    [Back]

       Upon successful completion, the byte length of the written
       message  is returned. If no messages are available and the
       peer  has  closed  the  connection,  the  recv()  function
       returns  a  value  of 0. Otherwise, the function returns a
       value of -1 and sets errno to indicate the error.

ERRORS    [Toc]    [Back]

       If the recvfrom() function fails, errno may be set to  one
       of  the  following  values:  The socket parameter is not a
       valid file descriptor.  A connection was  forcibly  closed
       by  a  peer.   Nonexistent  or  protected address space is
       specified for the  message  buffer,  sending  address,  or
       address length.

              [Tru64   UNIX]  A  valid  message  buffer  was  not
              specified.  A signal  interrupted  recvfrom  before
              any  data  was  available.  The MSG-OOB flag is set
              and no out-of-band data is available.  An I/O error
              occurred  while reading from or writing to the file
              system.  Insufficient resources  are  available  in
              the  system  to  complete the call.  The system did
              not have sufficient memory to fulfill the  request.
              The  available  STREAMS resources were insufficient
              for  the  operation  to  complete.   A  receive  is
              attempted  on  a connection-oriented socket that is
              not connected.  The socket parameter  refers  to  a
              file,  not  a  socket.  The specified flags are not
              supported this socket type.  The  connection  timed
              out  during  connection  establishment, or due to a
              transmission timeout  on  active  connection.   The
              socket  is  nonblocking;  no  data  is  ready to be

              The MSG_OOB flag is set,  no  out-of-band  data  is
              available,  and either the socket is nonblocking or
              does not  support  blocking  to  await  out-of-band

SEE ALSO    [Toc]    [Back]

       Functions:   read(2),   recv(2),   recvmsg(2),  select(2),
       send(2), sendmsg(2),  sendto(2),  shutdown(2),  socket(2),

       Standards: standards(5).

       Network Programmer's Guide

[ Back ]
 Similar pages
Name OS Title
recv Tru64 Receive messages from connected sockets
writesrv Tru64 Lets users send messages to and receive messages from a remote system
strerr HP-UX receive error messages from the STREAMS log driver
getsockopt OpenBSD get and set options on sockets
getsockopt IRIX get and set options on sockets
getsockopt HP-UX get and set options on sockets
getsockopt FreeBSD get and set options on sockets
setsockopt NetBSD get and set options on sockets
getsockopt IRIX get and set options on sockets
connect Tru64 Connect two sockets
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service