106 lines
1.7 KiB
Markdown
106 lines
1.7 KiB
Markdown
# PRSocketOptionData
|
|
|
|
Type for structure used with {ref}`PR_GetSocketOption` and
|
|
{ref}`PR_SetSocketOption` to specify options for file descriptors that
|
|
represent sockets.
|
|
|
|
## Syntax
|
|
|
|
```{code}
|
|
#include <prio.h>
|
|
|
|
typedef struct PRSocketOptionData
|
|
{
|
|
PRSockOption option;
|
|
union
|
|
{
|
|
PRUintn ip_ttl;
|
|
PRUintn mcast_ttl;
|
|
PRUintn tos;
|
|
PRBool non_blocking;
|
|
PRBool reuse_addr;
|
|
PRBool keep_alive;
|
|
PRBool mcast_loopback;
|
|
PRBool no_delay;
|
|
PRSize max_segment;
|
|
PRSize recv_buffer_size;
|
|
PRSize send_buffer_size;
|
|
PRLinger linger;
|
|
PRMcastRequest add_member;
|
|
PRMcastRequest drop_member;
|
|
PRNetAddr mcast_if;
|
|
} value;
|
|
} PRSocketOptionData;
|
|
```
|
|
|
|
### Fields
|
|
|
|
The structure has the following fields:
|
|
|
|
`ip_ttl`
|
|
|
|
: IP time-to-live.
|
|
|
|
`mcast_ttl`
|
|
|
|
: IP multicast time-to-live.
|
|
|
|
`tos`
|
|
|
|
: IP type-of-service and precedence.
|
|
|
|
`non_blocking`
|
|
|
|
: Nonblocking (network) I/O.
|
|
|
|
`reuse_addr`
|
|
|
|
: Allow local address reuse.
|
|
|
|
`keep_alive`
|
|
|
|
: Periodically test whether connection is still alive.
|
|
|
|
`mcast_loopback`
|
|
|
|
: IP multicast loopback.
|
|
|
|
`no_delay`
|
|
|
|
: Disable Nagle algorithm. Don't delay send to coalesce packets.
|
|
|
|
`max_segment`
|
|
|
|
: TCP maximum segment size.
|
|
|
|
`recv_buffer_size`
|
|
|
|
: Receive buffer size.
|
|
|
|
`send_buffer_size`
|
|
|
|
: Send buffer size.
|
|
|
|
`linger`
|
|
|
|
: Time to linger on close if data are present in socket send buffer.
|
|
|
|
`add_member`
|
|
|
|
: Join an IP multicast group.
|
|
|
|
`drop_member`
|
|
|
|
: Leave an IP multicast group.
|
|
|
|
`mcast_if`
|
|
|
|
: IP multicast interface address.
|
|
|
|
### Description
|
|
|
|
{ref}`PRSocketOptionData` is a name-value pair for a socket option. The
|
|
`option` field (of enumeration type {ref}`PRSockOption`) specifies the
|
|
name of the socket option, and the `value` field (a union of all
|
|
possible values) specifies the value of the option.
|