SocketOptionName 枚举

定义

定义配置选项名称。

public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName = 
Public Enum SocketOptionName
继承
SocketOptionName

字段

AcceptConnection 2

套接字正在侦听。

AddMembership 12

添加一个 IP 组成员。

AddSourceMembership 15

联接源组。

BlockSource 17

阻止源中的数据。

Broadcast 32

允许在套接字上发送广播消息。

BsdUrgent 2

使用 RFC-1222 中定义的紧急数据。 此选项只能设置一次,而且设置以后就不能关闭。

ChecksumCoverage 20

设置或获取 UDP 校验和覆盖。

Debug 1

记录调试信息。

DontFragment 14

不对 IP 数据报进行分段。

DontLinger -129

完全关闭套接字,不做逗留。

DontRoute 16

不路由,将数据包直接发送到接口地址。

DropMembership 13

放置一个 IP 组成员。

DropSourceMembership 16

放置一个源组。

Error 4103

获取错误状态并清除。

ExclusiveAddressUse -5

使套接字能够为独占访问进行绑定。

Expedited 2

使用 RFC-1222 中定义的加急数据。 此选项只能设置一次,而且设置以后就不能关闭。

HeaderIncluded 2

指示应用程序为输出数据报提供 IP 头。

HopLimit 21

指定 Internet 协议版本 6 (IPv6) 数据包的最大路由器跃点数目。 这类似于 Internet 协议版本 4 的生存时间 (TTL)。

IPOptions 1

指定要插入到输出数据报中的 IP 选项。

IPProtectionLevel 23

允许将 IPv6 套接字限制为指定范围,例如具有相同链接本地或站点本地前缀的地址。 此套接字选项使应用程序能够对 IPv6 套接字施加访问限制。 通过应用此类限制,可让在专用局域网上运行的应用程序能够通过简单的方式很好地增强自身的安全性,以便防范外部攻击。 此套接字选项可以扩大或缩小侦听套接字的范围,从而使得公共用户和私人用户可以在适当情况下对站点进行无限制的访问,或者可以根据需要对同一站点进行有限制的访问。 此套接字选项具有 IPProtectionLevel 枚举中指定的已定义保护级别。

IpTimeToLive 4

设置 IP 头生存时间字段。

IPv6Only 27

指示为 AF_INET6 地址族创建的套接字是否仅适用于 IPv6 通信。 为 AF_INET6 地址族创建的套接字可用于 IPv6 和 IPv4 通信。 一些应用程序可能需要将为 AF_INET6 地址族创建的套接字限制为仅用于 IPv6 通信。 当此值不为零(Windows 上的默认值)时,为 AF_INET6 地址族创建的套接字只可用于发送和接收 IPv6 数据包。 当此值为零时,为 AF_INET6 地址族创建的套接字可用于向 IPv6 地址或 IPv4 地址发送数据包以及从 IPv6 地址或 IPv4 地址接收数据包。 请注意,需要使用 IPv4 映射地址才能与 IPv4 地址进行交互。 Windows Vista 或更高版本上支持此套接字选项。

KeepAlive 8

使用 keep-alive。

Linger 128

如果存在未发送的数据,则在关闭时逗留。

MaxConnections 2147483647

不受支持;如果使用,将引发 SocketException

MulticastInterface 9

为输出的多路广播数据包设置接口。

MulticastLoopback 11

IP 多路广播环回。

MulticastTimeToLive 10

IP 多路广播生存时间。

NoChecksum 1

发送校验和设置为零的 UDP 数据报。

NoDelay 1

为发送合并禁用 Nagle 算法。

OutOfBandInline 256

接收正常数据流中的带外数据。

PacketInformation 19

返回有关接收到的数据包的信息。

ReceiveBuffer 4098

指定为接收保留的每个套接字缓冲区空间的总量。 这与最大消息大小或 TCP 窗口的大小无关。

ReceiveLowWater 4100

Receive 操作指定低水印。

ReceiveTimeout 4102

接收超时。此选项仅适用于同步方法;它对异步方法(如 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 该方法)没有影响。

ReuseAddress 4

允许将套接字绑定到已在使用中的地址。

ReuseUnicastPort 12295

指示系统应延迟出站连接的临时端口分配。 这等效于使用 Winsock2 SO_REUSE_UNICASTPORT 套接字选项。

SendBuffer 4097

指定为发送保留的每个套接字缓冲区空间的总量。 这与最大消息大小或 TCP 窗口的大小无关。

SendLowWater 4099

Send 操作指定低水印。

SendTimeout 4101

发送超时。此选项仅适用于同步方法;它对异步方法(如 BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 该方法)没有影响。

TcpKeepAliveInterval 17

在发送另一个 keepalive 探测之前,一个 TCP 连接等待某 keepalive 响应的秒数。

TcpKeepAliveRetryCount 16

在终止连接之前将发送的 TCP keepalive 探测数。

TcpKeepAliveTime 3

将 keepalive 探测发送到远程设备之前,一个 TCP 连接将保持活动/空闲的秒数。

Type 4104

获取套接字类型。

TypeOfService 3

更改服务字段的 IP 头类型。

UnblockSource 18

取消阻止先前被阻止的源。

UpdateAcceptContext 28683

使用现有套接字的属性更新已接受套接字的属性。 这等效于使用 Winsock2 SO_UPDATE_ACCEPT_CONTEXT 套接字选项,并且仅在面向连接的套接字上受支持。

UpdateConnectContext 28688

使用现有套接字的属性更新已连接套接字的属性。 这等效于使用 Winsock2 SO_UPDATE_CONNECT_CONTEXT 套接字选项,并且仅在面向连接的套接字上受支持。

UseLoopback 64

可能时避开硬件。

示例

下面的代码示例使用此枚举来设置套接字选项。

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// 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 );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' 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)

注解

枚举 SocketOptionName 定义每个 Socket 配置选项的名称。 可以使用该方法 Socket.SetSocketOption 配置套接字。

适用于

另请参阅