LingerOption(Boolean, Int32) 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 LingerOption 类的新实例。
public:
LingerOption(bool enable, int seconds);
public LingerOption (bool enable, int seconds);
new System.Net.Sockets.LingerOption : bool * int -> System.Net.Sockets.LingerOption
Public Sub New (enable As Boolean, seconds As Integer)
参数
示例
以下示例将以前创建的 Socket 设置为在调用 Close 方法后一秒后挥之不去。
LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );
LingerOption myOpts = new LingerOption(true,1);
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);
Dim myOpts As New LingerOption(True, 1)
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
myOpts)
注解
关闭 Socket后,传出网络缓冲区中可能仍有可用数据。
enable
使用 参数指定是否希望 Socket 在调用 close 方法后继续传输未发送的数据。
seconds
使用 参数指示希望 Socket 在超时之前尝试传输未送入数据的时间。如果为 参数指定 ,为 enable
seconds
参数指定 true
0,Socket则 将尝试发送数据,直到传出网络缓冲区中没有剩余的数据。 如果为 enable
参数指定 false
, Socket 将立即关闭,并且所有未输入的数据都将丢失。
下表描述了Socket.Close在 或 TcpClient.LingerState 属性中创建Socket.LingerState和TcpClient.Close设置 T:System.Net.Sockets.LingerOption 实例时, 和 方法的行为基于 和 seconds
参数的enable
可能值。
enable |
seconds |
行为 |
---|---|---|
false (禁用) ,默认值 |
超时不适用, (默认) 。 | 尝试为面向连接的套接字发送挂起数据 (TCP,例如,) 直到默认 IP 协议超时过期。 |
true 已启用 () |
非零超时 | 尝试发送挂起的数据,直到指定的超时过期,如果尝试失败,Winsock 将重置连接。 |
true 已启用 () |
零超时。 | 放弃任何挂起的数据。 对于面向连接的套接字 (TCP(例如) ),Winsock 会重置连接。 |
IP 堆栈根据连接的往返时间计算要使用的默认 IP 协议超时期限。 在大多数情况下,堆栈计算的超时比应用程序定义的超时更相关。 这是未设置 属性时 LingerState 套接字的默认行为。
LingerTime如果属性中LingerState存储的属性设置为大于默认 IP 协议超时,则默认 IP 协议超时仍将应用并替代。