Once a socket has been connected to a peer, you can use the ordinary
write operations (see Input and Output Primitives) to
transfer data. A socket is a two-way communications channel, so read
and write operations can be performed at either end.
There are also some I/O modes that are specific to socket operations.
In order to specify these modes, you must use the
send functions instead of the more generic
write functions. The
send functions take
an additional argument which you can use to specify various flags to
control special I/O modes. For example, you can specify the
MSG_OOB flag to read or write out-of-band data, the
MSG_PEEK flag to peek at input, or the
to control inclusion of routing information on output.