Socket-Level Options
--------------------
- Constant: 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' (Note:Setting Address)
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 Note:Closing a Socket. The value has
type `struct linger'.
- Data 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. Note: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
Note: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.