TcpClient.LingerState 属性

定义

获取或设置有关关联的套接字的延迟状态的信息。

public:
 property System::Net::Sockets::LingerOption ^ LingerState { System::Net::Sockets::LingerOption ^ get(); void set(System::Net::Sockets::LingerOption ^ value); };
public System.Net.Sockets.LingerOption? LingerState { get; set; }
public System.Net.Sockets.LingerOption LingerState { get; set; }
member this.LingerState : System.Net.Sockets.LingerOption with get, set
Public Property LingerState As LingerOption

属性值

LingerOption。 默认情况下,禁用逗留。

示例

下面的代码示例设置并获取套接字的挥之不去的时间。

// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );
tcpClient->LingerState = lingerOption;

// gets the amount of linger time set, using the LingerOption public property.
if ( tcpClient->LingerState->LingerTime == 10 )
      Console::WriteLine( "The linger state setting was successfully set to {0}", tcpClient->LingerState->LingerTime );
// sets the amount of time to linger after closing, using the LingerOption public property.
LingerOption lingerOption = new LingerOption (true, 10);

tcpClient.LingerState = lingerOption;

// gets the amount of linger time set, using the LingerOption public property.
if (tcpClient.LingerState.LingerTime == 10)
    Console.WriteLine ("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString ());
' Sets the amount of time to linger after closing, using the LingerOption public property.
Dim lingerOption As New LingerOption(True, 10)
tcpClient.LingerState = lingerOption

' Gets the amount of linger time set, using the LingerOption public property.
If tcpClient.LingerState.LingerTime = 10 Then
   Console.WriteLine(("The linger state setting was successfully set to " + tcpClient.LingerState.LingerTime.ToString()))
End If

注解

属性 LingerState 更改方法的行为方式 Close 。 设置时,此属性修改 Winsock 可以重置连接的条件。 仍可根据 IP 协议行为进行连接重置。

此属性控制 TCP 连接在调用 Close 后保持打开状态的时间长度,当数据仍要发送时。 调用 Write 方法时,数据将放置在传出网络缓冲区中。 此属性可用于确保在方法断开连接之前 Close 将此数据发送到远程主机。

若要启用挥之不去,请创建一个 LingerOption 包含所需值的 实例,并将 属性设置为 LingerState 此实例。

下表描述了 方法针对 属性的可能值Enabled和 存储在 属性中的 LingerTimeLingerState 属性的行为Close

LingerState.Enabled LingerState.LingerTime 行为
false (禁用) ,默认值 超时不适用, (默认) 。 尝试发送挂起的数据,直到默认 IP 协议超时过期。
true 已启用 () 非零超时 尝试发送挂起的数据,直到指定的超时过期,如果尝试失败,Winsock 将重置连接。
true 已启用 () 零超时。 放弃任何挂起的数据,Winsock 重置连接。

IP 堆栈根据连接的往返时间计算要使用的默认 IP 协议超时期限。 在大多数情况下,堆栈计算的超时比应用程序定义的超时更相关。 这是未设置 属性时 LingerState 套接字的默认行为。

LingerTime如果属性中LingerState存储的属性设置为大于默认 IP 协议超时,则默认 IP 协议超时仍将应用并替代。

适用于

另请参阅