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 中定义的加速数据。 此选项只能设置一次;设置后,无法将其关闭。

FastOpen 15

启用 RFC-7413 中定义的 TCP 快速打开。 实际观察到的行为取决于 OS 配置和内核 TCP Cookie 缓存的状态。 启用 TFO 可能会影响互操作性并导致连接问题。

HeaderIncluded 2

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

HopLimit 21

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

IPOptions 1

指定要插入传出数据报的 IP 选项。

IPProtectionLevel 23

允许将 IPv6 套接字限制为指定范围,例如具有相同链接本地或站点本地前缀的地址。 此套接字选项使应用程序能够对 IPv6 套接字施加访问限制。 此类限制使在专用 LAN 上运行的应用程序能够简单且可靠地强化自身免受外部攻击。 此套接字选项可扩大或缩小侦听套接字的范围,在适当情况下启用对公共和专用用户的无限制访问,或根据需要仅限制对同一站点的访问。 此套接字选项在 IPProtectionLevel 枚举中定义了保护级别。

IpTimeToLive 4

设置 IP 标头生存时间字段。

IPv6Only 27

指示为 AF_INET6 地址系列创建的套接字是否仅限于 IPv6 通信。 为AF_INET6地址系列创建的套接字可用于 IPv6 和 IPv4 通信。 某些应用程序可能希望仅将为 AF_INET6 地址系列创建的套接字的使用限制为 IPv6 通信。 如果此值为非零(Windows 上的默认值),则为 AF_INET6 地址系列创建的套接字只能用于发送和接收 IPv6 数据包。 如果此值为零,则为 AF_INET6 地址系列创建的套接字可用于向 IPv6 地址或 IPv4 地址发送和接收数据包。 请注意,能够与 IPv4 地址交互需要使用 IPv4 映射地址。 Windows Vista 或更高版本支持此套接字选项。

KeepAlive 8

使用 keep-alives。

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

TCP 连接将等待保持响应的秒数,然后再发送另一个保留探测。

TcpKeepAliveRetryCount 16

连接终止前将发送的 TCP 保持活动探测数。

TcpKeepAliveTime 3

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

注解

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

适用于

另请参阅