SocketOptionName Enum

Definition

Defines configuration option names.

public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName = 
Public Enum SocketOptionName
Inheritance
SocketOptionName

Fields

Name Value Description
DontLinger -129

Close the socket gracefully without lingering.

ExclusiveAddressUse -5

Enables a socket to be bound for exclusive access.

Debug 1

Record debugging information.

IPOptions 1

Specifies the IP options to be inserted into outgoing datagrams.

NoChecksum 1

Send UDP datagrams with checksum set to zero.

NoDelay 1

Disables the Nagle algorithm for send coalescing.

AcceptConnection 2

The socket is listening.

BsdUrgent 2

Use urgent data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off.

Expedited 2

Use expedited data as defined in RFC-1222. This option can be set only once; after it is set, it cannot be turned off.

HeaderIncluded 2

Indicates that the application provides the IP header for outgoing datagrams.

TcpKeepAliveTime 3

The number of seconds a TCP connection will remain alive/idle before keepalive probes are sent to the remote.

TypeOfService 3

Change the IP header type of the service field.

IpTimeToLive 4

Set the IP header Time-to-Live field.

ReuseAddress 4

Allows the socket to be bound to an address that is already in use.

KeepAlive 8

Use keep-alives.

MulticastInterface 9

Set the interface for outgoing multicast packets.

MulticastTimeToLive 10

An IP multicast Time to Live.

MulticastLoopback 11

An IP multicast loopback.

AddMembership 12

Add an IP group membership.

DropMembership 13

Drop an IP group membership.

DontFragment 14

Do not fragment IP datagrams.

AddSourceMembership 15

Join a source group.

FastOpen 15

Enables TCP Fast Open as defined in RFC-7413. The actual observed behavior depends on OS configuration and the state of the kernel TCP cookie cache. Enabling TFO can impact interoperability and cause connectivity issues.

DontRoute 16

Do not route; send the packet directly to the interface addresses.

DropSourceMembership 16

Drop a source group.

TcpKeepAliveRetryCount 16

The number of TCP keep alive probes that will be sent before the connection is terminated.

BlockSource 17

Block data from a source.

TcpKeepAliveInterval 17

The number of seconds a TCP connection will wait for a keepalive response before sending another keepalive probe.

UnblockSource 18

Unblock a previously blocked source.

PacketInformation 19

Return information about received packets.

ChecksumCoverage 20

Set or get the UDP checksum coverage.

HopLimit 21

Specifies the maximum number of router hops for an Internet Protocol version 6 (IPv6) packet. This is similar to Time to Live (TTL) for Internet Protocol version 4.

IPProtectionLevel 23

Enables restriction of a IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix. This socket option enables applications to place access restrictions on IPv6 sockets. Such restrictions enable an application running on a private LAN to simply and robustly harden itself against external attacks. This socket option widens or narrows the scope of a listening socket, enabling unrestricted access from public and private users when appropriate, or restricting access only to the same site, as required. This socket option has defined protection levels specified in the IPProtectionLevel enumeration.

IPv6Only 27

Indicates if a socket created for the AF_INET6 address family is restricted to IPv6 communications only. Sockets created for the AF_INET6 address family may be used for both IPv6 and IPv4 communications. Some applications may want to restrict their use of a socket created for the AF_INET6 address family to IPv6 communications only. When this value is non-zero (the default on Windows), a socket created for the AF_INET6 address family can be used to send and receive IPv6 packets only. When this value is zero, a socket created for the AF_INET6 address family can be used to send and receive packets to and from an IPv6 address or an IPv4 address. Note that the ability to interact with an IPv4 address requires the use of IPv4 mapped addresses. This socket option is supported on Windows Vista or later.

Broadcast 32

Permit sending broadcast messages on the socket.

UseLoopback 64

Bypass hardware when possible.

Linger 128

Linger on close if unsent data is present.

OutOfBandInline 256

Receives out-of-band data in the normal data stream.

SendBuffer 4097

Specifies the total per-socket buffer space reserved for sends. This is unrelated to the maximum message size or the size of a TCP window.

ReceiveBuffer 4098

Specifies the total per-socket buffer space reserved for receives. This is unrelated to the maximum message size or the size of a TCP window.

SendLowWater 4099

Specifies the low water mark for Send operations.

ReceiveLowWater 4100

Specifies the low water mark for Receive operations.

SendTimeout 4101

Send a time-out. This option applies only to synchronous methods; it has no effect on asynchronous methods such as the BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) method.

ReceiveTimeout 4102

Receive a time-out. This option applies only to synchronous methods; it has no effect on asynchronous methods such as the BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) method.

Error 4103

Gets the error status and clear.

Type 4104

Gets the socket type.

ReuseUnicastPort 12295

Indicates that the system should defer ephemeral port allocation for outbound connections. This is equivalent to using the Winsock2 SO_REUSE_UNICASTPORT socket option.

UpdateAcceptContext 28683

Updates an accepted socket's properties by using those of an existing socket. This is equivalent to using the Winsock2 SO_UPDATE_ACCEPT_CONTEXT socket option and is supported only on connection-oriented sockets.

UpdateConnectContext 28688

Updates a connected socket's properties by using those of an existing socket. This is equivalent to using the Winsock2 SO_UPDATE_CONNECT_CONTEXT socket option and is supported only on connection-oriented sockets.

MaxConnections 2147483647

Not supported; will throw a SocketException if used.

Examples

The following code example uses this enumeration to set socket options.

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption(true, 10);
s->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

Remarks

The SocketOptionName enumeration defines the name of each Socket configuration option. Sockets can be configured with the Socket.SetSocketOption method.

Applies to

See also