sendto(2)sendto(2)NAMEsendto - Send messages through a socket
SYNOPSIS
#include <sys/socket.h>
ssize_t sendto(
int socket,
const void *message,
size_t length,
int flags,
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)): #include <sys/socket.h>
int sendto(
int socket,
char *message_addr,
int length,
int flags,
struct sockaddr *dest_addr,
int dest_len );
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
sendto(): XNS4.0, XNS5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
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 sup‐
ported 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_stor‐
age 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 spec‐
ifying 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 dest_addr parameter.
DESCRIPTION
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. Spec‐
ify the length of the message with the length parameter.
If the sending socket has no space to hold the message to be transmit‐
ted, 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.
RETURN VALUES
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.
ERRORS
If the sendto() function fails, errno may be set to one of the follow‐
ing 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 sym‐
bolic 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 des‐
tination network is unreachable. Insufficient resources are available
in the system to complete the call.
[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 ful‐
fill the request. The available STREAMS resources were insuffi‐
cient for the operation to complete. The socket is connection-
oriented but is not connected. For an AF_UNIX socket, a compo‐
nent 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 non‐
blocking, and no space is available for the sendto() function.
SEE ALSO
Functions: getsockopt(2), poll(2), recv(2), recvfrom(2), recvmsg(2),
select(2), send(2), sendmsg(2), setsockopt(2), shutdown(2), socket(2).
Standards: standards(5).
Network Programmer's Guide
sendto(2)