COHERENT manpages

This page displays the COHERENT manpage for setsockopt() [Set a socket option].

List of available manpages
Index


setsockopt() -- Sockets Function (libsocket)

Set a socket option
#include <sys/types.h>
#include <sys/socket.h>
int setsockopt(socket, level, option, buffer, length)
int socket, level, option, length;
char *buffer;

Function setsockopt() sets options on a socket.

socket  gives the  identifier of  the socket, as  returned by  the function
socket().

level gives  the level at which  the options are set.   To retrieve options
set  on the  socket  level, set  level  to SOL_SOCKET  whereas to  retrieve
options set the TCP level, set level to the number of the TCP protocol.

option gives the  number of the option to set.   A list of options that are
recognized at the socket level  appears below.  Options at other levels are
set by their respective protocols.

buffer gives the address of the buffer that holds the option.  length gives
the length of buffer, in bytes.

The following options are recognized at  the socket level.  They are set in
header file <sys/socket.h>:

SO_BROADCAST
     Toggle permission to transmit broadcast messages.

SO_KEEPALIVE
     Toggle whether to keep a connection alive by periodically transmitting
     messages.  If  the connected party fails to respond  to a message, the
     connection is considered broken  and processes that use the socket are
     notified via the signal SIGPIPE.

SO_LINGER
     Control the  action taken when a socket is  closed but contains unsent
     messages.   If  SO_LINGER  is set  and  the  socket promises  reliable
     delivery of data, the system  blocks the process that is attempting to
     close socket until socket can transmit  its data or its attempts to do
     so  time out.   If  SO_LINGER is  not  enabled, the  socket is  closed
     immediately and the unsent messages are thrown away.

SO_OOBINLINE
     Toggle whether  a band  can receive  out-of-band data.  Such  data can
     then be  read by the function  recv() or sent by  the function send(),
     when invoked with the flag MSG_OOB.

SO_RCVBUF
SO_SNDBUF
     Set the  size of  the receive or  send buffer, respectively.   You can
     increase the  size of  a buffer  to speed high-volume  connections, or
     decrease  it to  limit the  amount of data  that are  backlogged.  The
     system places an absolute limit on these values.

SO_REUSEADDR
     Toggle whether local addresses can be reused.

If all  goes well, setsockopt() returns zero.  If  something goes wrong, it
returns -1 and set errno to one of the following values:

EBADF
     socket does not identify a valid socket.

ENOMEM
     The available user memory was insufficient to complete the operation.

ENOPROTOOPT
     option gives an unknown option.

ENOTSOCK
     socket identifies a file, not a socket.

See Also

getsockopt(),
libsocket