If the message is too long to pass atomically through the underlying protocol, the
error EMSGSIZE is returned, and the message is not transmitted.
No indication of failure to deliver is implicit in a send(). Locally detected errors
are indicated by a return value of -1.
When the message does not fit into the send buffer of the socket, send() normally
blocks, unless the socket has been placed in nonblocking I/O mode. In nonblocking
mode it would fail with the error EAGAIN or EWOULDBLOCK in this case. The select(2)
call may be used to determine when it is possible to send more data.