SocketOptionName 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义配置选项名称。
public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName =
Public Enum 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 方法配置套接字。
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈