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 | |
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 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 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈