int
SOL_SOCKET ¶Use this constant as the level argument to getsockopt
or
setsockopt
to manipulate the socket-level options described in
this section.
Here is a table of socket-level option names; all are defined in the header file sys/socket.h.
SO_DEBUG
¶This option toggles recording of debugging information in the underlying
protocol modules. The value has type int
; a nonzero value means
“yes”.
SO_REUSEADDR
¶This option controls whether bind
(see Setting the Address of a Socket)
should permit reuse of local addresses for this socket. If you enable
this option, you can actually have two sockets with the same Internet
port number; but the system won’t allow you to use the two
identically-named sockets in a way that would confuse the Internet. The
reason for this option is that some higher-level Internet protocols,
including FTP, require you to keep reusing the same port number.
The value has type int
; a nonzero value means “yes”.
SO_KEEPALIVE
¶This option controls whether the underlying protocol should
periodically transmit messages on a connected socket. If the peer
fails to respond to these messages, the connection is considered
broken. The value has type int
; a nonzero value means
“yes”.
SO_DONTROUTE
¶This option controls whether outgoing messages bypass the normal
message routing facilities. If set, messages are sent directly to the
network interface instead. The value has type int
; a nonzero
value means “yes”.
SO_LINGER
¶This option specifies what should happen when the socket of a type
that promises reliable delivery still has untransmitted messages when
it is closed; see Closing a Socket. The value has type
struct linger
.
This structure type has the following members:
int l_onoff
This field is interpreted as a boolean. If nonzero, close
blocks until the data are transmitted or the timeout period has expired.
int l_linger
This specifies the timeout period, in seconds.
SO_BROADCAST
¶This option controls whether datagrams may be broadcast from the socket.
The value has type int
; a nonzero value means “yes”.
SO_OOBINLINE
¶If this option is set, out-of-band data received on the socket is
placed in the normal input queue. This permits it to be read using
read
or recv
without specifying the MSG_OOB
flag. See Out-of-Band Data. The value has type int
; a
nonzero value means “yes”.
SO_SNDBUF
¶This option gets or sets the size of the output buffer. The value is a
size_t
, which is the size in bytes.
SO_RCVBUF
¶This option gets or sets the size of the input buffer. The value is a
size_t
, which is the size in bytes.
SO_STYLE
¶SO_TYPE
¶This option can be used with getsockopt
only. It is used to
get the socket’s communication style. SO_TYPE
is the
historical name, and SO_STYLE
is the preferred name in GNU.
The value has type int
and its value designates a communication
style; see Communication Styles.
SO_ERROR
¶This option can be used with getsockopt
only. It is used to reset
the error status of the socket. The value is an int
, which represents
the previous error status.