Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

recv(2)

recvmsg(2)

send(2)

sendmsg(2)

sendto(2)

select(2)

shutdown(2)

socket(2)

read(2)

write(2)

recvfrom(2)  —  System Calls

OSF

NAME

recvfrom −  Receives messages from sockets

SYNOPSIS

#include <sys/types.h> #include <sys/socket.h> int recvfrom(
int socket,
char ∗buffer,
int length,
int flags,
struct sockaddr ∗address,
int ∗address_len) ;

PARAMETERS

socketSpecifies the socket file descriptor. 

bufferSpecifies a pointer to the buffer to which the message should be written. 

lengthSpecifies the length in bytes of the buffer pointed to by the buffer parameter. 

flagsPoints 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:

MSG_PEEKPeeks at the incoming message. 

MSG_OOBProcesses out-of-band data. 

addressPoints 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, or sockaddr_ns structure, depending on which of the supported address families is active.  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. 

address_lenSpecifies the length of the sockaddr structure pointed to by the address parameter. 

DESCRIPTION

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]. 

RETURN VALUES

Upon successful completion, the byte length of the written message is returned.  Otherwise, a value of -1 is returned and errno is set to indicate the error. 

ERRORS

If the recvfrom() function fails, errno may be set to one of the following values:

[EBADF]The socket parameter is not a valid file descriptor. 

[ENOTSOCK]
The socket parameter refers to a file, not a socket. 

[EWOULDBLOCK]
The socket is nonblocking; no data is ready to be received.

[EFAULT]A valid message buffer was not specified.  Nonexistent or protected address space is specified for the message buffer. 

RELATED INFORMATION

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026