Chapter Contents

Previous

Next
setsockopt

setsockopt



Sets Socket Options

Portability: UNIX compatible


SYNOPSIS
DESCRIPTION
RETURN VALUE
PORTABILITY
RELATED FUNCTIONS


SYNOPSIS

#include <sys/types.h>
#include <sys/socket.h>

int setsockopt(int s, int level, int optname, const void *optval, int optlen);


DESCRIPTION

setsockopt sets the value of the options associated with socket descriptor s . level is the level of the option. optname is the name of the option. optval is a pointer to a buffer that receives the value of the requested option. As an input parameter, the integer optlen should be set to the size of the optval buffer.

Most options are at the socket level. Pass SOL_SOCKET as the level parameter for these options:

SO_LINGER
sets the linger option. The linger option controls the behavior of the close call when there are some data that have not been sent. optval should point to a struct linger . If the value of the l_onoff field is 0 , close returns immediately. In this case, TCP/IP continues to attempt to deliver the data, but the program is not informed if delivery fails. If the value of the l_onoff field is nonzero, the behavior of the close call depends on the value of the l_linger field. If this value is 0 , unsent data are discarded at the time of the close . If the value of l_linger is not 0 , the close call blocks the caller until there is a timeout or until all data are sent. The l_linger field indicates the length of the desired timeout period. Some TCP/IP implementations may ignore the value of the l_linger field. s must be a stream socket.

SO_OOBINLINE
receives out-of-band data inline, that is, without setting the MSG_OOB flag in recv calls. optval should point to an integer. s must be a stream socket. Refer to "Out-of-Band Data" in Chapter 6, "Berkeley Sockets," in UNIX Network Programming for information on out-of-band data.

SO_REUSEADDR
allows local port address to be reused. optval should point to an integer. s must be a stream socket.

The option level IPPROTO_TCP is available for one option. The TCP_NODELAY option indicates that TCP's normal socket buffering should not be used on the socket. The TCP_NODELAY option is not operative; it is supported for source code compatibility. The <netinet/in.h> and <netinet/tcp.h> headers files are required for this option.


RETURN VALUE

If setsockopt succeeds, it returns a 0 . Otherwise, it returns a -1 , and sets errno to indicate the type of error.


PORTABILITY

setsockopt is portable to other environments, including most UNIX systems, that implement BSD sockets. The supported options may vary depending on the system; additional options may be supported by a specific TCP/IP software product, and the options described above may be supported differently. Refer to your software documentation for details.


RELATED FUNCTIONS

bind , close , ioctl , recv , socket


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.