setsockopt

setsockopt, and the corresponding getsockopt, can be used to get and set options for a socket. Use getsockopt to determine socket options. Use setsockopt to set socket options. The new value remains until it is modified again. The optval parameter points to a buffer that specifies the option value according to the option name (optname). The optlen parameter indicates the length of the buffer pointed to by optval.  It is used in various ways depending on the specific option. In some cases, it is the length of the option value to be set.

Syntax

Copy
int setsockopt(
    SOCKET s,
    int level,
    int optname,
    const char *optval,
    int optlen
);

Parameters

s

A socket descriptor.

level

The layer of the network for which the option is targeted:

optname

A socket option based on the value of level. Some values for the optname parameter are not supported. See the Remarks section below.

optval

A pointer to a buffer to where the option value is stored. Its proper length depends on the type of information being set as specified in the optname field.

optlen

Size, in bytes, of the buffer at optval.

Return Value

If the function succeeds, it returns 0 (zero). If the function fails, it returns SOCKET_ERROR.

Use WSAGetLastError to retrieve a specific error code.

Remarks

Some optname parameter value are not supported. The following sections list the options, by socket type, that are supported.

SOL_SOCKET level options:

IPPROTO_TCP level options:

IPPROTO_IP level options:

IPPROTO_IPV6 level options:

Note: None of the options for the IPPROTO_RM, NSPROTO_IPX, SOL_APPLETALK, and SOL_IRLMP socket types are supported.

Custom eRTOS socket options:

Option Value Description
SO_SND_DGRAMS 0x100B Maximum count of send datagrams on non-TCP socket (default 32)
SO_RCV_DGRAMS 0x100C Maximum count of receive datagrams on non-TCP socket (default 32)
TCP_PROVIDE_TIMESTAMPS 13 Turn ON/OFF Time stamp (default off)
TCP_ACKDELAYTIME 23 Set Ack Delay time (default 200ms)
TCP_ACKNSEG 24 Turn ON/OFF Selective Acknowledgments (default off)

Requirements

Minimum supported version Header Library

eRTOS 1.0 SDK

Winsock2.h RtTcpipApi.lib