sendto - Send messages through a socket
const void *message,
const struct sockaddr *dest_addr,
socklen_t dest_len );
[XNS4.0] The definition of the sendto() function in
XNS4.0 uses a size_t data type for the dest_len parameter
instead of a socklen_t data type as specified in XNS5.0
(the previous definition).
[Tru64 UNIX] The following definition of the sendto()
function does not conform to current standards and is supported
only for backward compatibility (see standards(5)):
struct sockaddr *dest_addr,
int dest_len );
Interfaces documented on this reference page conform to
industry standards as follows:
sendto(): XNS4.0, XNS5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the file descriptor for the socket. Points to
the address containing the message to be sent. Specifies
the size of the message in bytes. Allows the sender to
control the message transmission. The flags value to send
a call is formed by logically ORing the following values,
defined in the sys/socket.h file: Terminates a record (if
supported by the protocol). Processes out-of-band data on
sockets that support out-of-band data. [Tru64
UNIX] Sends without using routing tables. (Not recommended;
for debugging purposes only.) 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
[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
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 dest_addr parameter.
The sendto() function allows an application program to
send messages through an unconnected socket by specifying
a destination address.
To broadcast on a socket, issue a setsockopt() function
using the SO_BROADCAST option to gain broadcast permissions.
Use the dest_addr parameter to provide the address of the
target. Specify the length of the message with the length
If the sending socket has no space to hold the message to
be transmitted, the sendto() function blocks unless the
socket is in a nonblocking I/O mode.
Use the select() and poll() functions to determine when to
send more data.
Upon successful completion, the sendto() function returns
the number of characters sent. Otherwise, a value of -1 is
returned, anderrno is set to indicate the error.
If the sendto() function fails, errno may be set to one of
the following values: Search permission is denied for a
component of the path prefix; or write access to the named
socket is denied. Addresses in the specified address family
cannot be used with this socket. The socket parameter
is not valid. A connection was forcibly closed by a peer.
You did not specify a destination address for the connectionless
socket that also did not have its peer address
set. The message or dest_addr parameter is not in a
writable part of the user address space. The destination
host is not reachable. A signal interrupted sendto before
any data was transmitted. The dest_len parameter is not a
valid size for the specified address family. For an
AF_UNIX socket, an I/O error occurred while reading from
or writing to the file system. The connection-oriented
socket for which a destination address was specified is
already connected. For an AF_UNIX socket, too many symbolic
links were encountered in translating the pathname
in the socket address. The message is too large to be
sent all at once, as the socket requires. For an AF_UNIX
socket, a component of the pathname exceeded NAME_MAX
characters, or an entire pathname exceeded PATH_MAX characters.
The local network connection is not operational.
The destination network is unreachable. Insufficient
resources are available in the system to complete the
[Tru64 UNIX] The interface driver's send queue is
full. If the problem persists, you might increase
the value for the ifqmaxlen system attribute in the
net subsystem. See sys_attrs_net(5) for more information.
For an AF_UNIX socket, a component of the
pathname does not name an existing file or the
pathname is an empty string. The system did not
have sufficient memory to fulfill the request. The
available STREAMS resources were insufficient for
the operation to complete. The socket is connection-oriented
but is not connected. For an AF_UNIX
socket, a component of the path prefix of the pathname
in address is not a directory. The socket
parameter refers to a file, not a socket. The
socket argument is associated with a socket that
does not support one or more of the values set in
flags. The socket is shut down for writing, or the
socket is connection-oriented and the peer is
closed or shut down for reading. In the latter
case, and if the socket is of type SOCK_STREAM, the
SIGPIPE signal is generated to the calling process.
The socket is marked nonblocking, and no space is
available for the sendto() function.
Functions: getsockopt(2), poll(2), recv(2), recvfrom(2),
recvmsg(2), select(2), send(2), sendmsg(2), setsockopt(2),
Network Programmer's Guide
[ Back ]