This function can be used on sockets to send data to named sockets. The data in the msg buffer is sent to the socket whose address is specified in the to argument, and the address of socket s is provided to the receiving socket. The receiving socket gets the data using the read(), recv(), recvfrom(), or recvmsg() function. Normally the sendto() function blocks if there is no space for the incoming data in the buffer. It waits until the buffer space becomes available. If the socket is set to nonblocking and there is no space for the data, the sendto() function fails with the EWOULDBLOCK error. If the message is too large to be sent in one piece, and the socket type is SOCK_DGRAM, which requires that messages be sent in one piece, sendto() fails with the EMSGSIZE error. If the address specified is a INADDR_BROADCAST address, then the SO_BROADCAST socket option must have been set and the process must have SYSPRV or BYPASS privilege for the I/O operation to succeed. A success return from the sendto() does not guarantee that the data has been received by the peer. All errors (except EWOULDBLOCK) are detected locally. To determine when it is possible to send more data, use the select() function. Related Functions See also read(), recv(), recvfrom(), recvmsg(), socket(), and getsockopt().