TcpClient.LingerState プロパティ

定義

関連付けられているソケットの待機状態に関する情報を取得または設定します。Gets or sets information about the linger state of the associated socket.

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

LingerOptionA LingerOption. 既定では、接続の待機は無効です。By default, lingering is disabled.

次のコード例では、ソケットの待機時間を設定し、取得します。The following code example sets and gets the sockets linger time.

// 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 ます。The LingerState property changes the way Close method behaves. このプロパティを設定すると、Winsock によって接続をリセットできる条件が変更されます。This property when set modifies the conditions under which the connection can be reset by Winsock. 接続のリセットは、IP プロトコルの動作によっても発生する可能性があります。Connection resets can still occur based on the IP protocol behavior.

このプロパティは、データが送信されるときにを呼び出した後、TCP 接続が開いたままになる時間を制御し Close ます。This property controls the length of time that the TCP connection will remain open after a call to Close when data remains to be sent. メソッドを呼び出すと Write 、データは送信ネットワークバッファーに配置されます。When you call the Write method, data is placed in the outgoing network buffer. このプロパティを使用すると、メソッドが接続を切断する前に、このデータが確実にリモートホストに送信されるようにすることができ Close ます。This property can be used to ensure that this data is sent to the remote host before the Close method drops the connection.

残留を有効にするには、 LingerOption 目的の値を含むインスタンスを作成し、 LingerState このインスタンスにプロパティを設定します。To enable lingering, create a LingerOption instance containing the desired values, and set the LingerState property to this instance.

次の表では、プロパティ Close の使用可能な値に対するメソッドの動作 EnabledLingerTime 、プロパティに格納されているプロパティについて説明し LingerState ます。The following table describes the behavior of the Close method for the possible values of the Enabled property and the LingerTime property stored in the LingerState property.

LingerState. 有効LingerState.Enabled LingerstateLingerState.LingerTime 動作Behavior
false (無効)、既定値false (disabled), the default value タイムアウトは適用されません (既定)。The time-out is not applicable, (default). 既定の IP プロトコルのタイムアウトが経過するまで、保留中のデータの送信を試みます。Attempts to send pending data until the default IP protocol time-out expires.
true enabledtrue (enabled) 0以外のタイムアウトA nonzero time-out 指定したタイムアウトが経過するまで保留中のデータを送信しようとします。失敗した場合は、Winsock によって接続がリセットされます。Attempts to send pending data until the specified time-out expires, and if the attempt fails, then Winsock resets the connection.
true enabledtrue (enabled) ゼロタイムアウト。A zero timeout. 保留中のデータを破棄し、Winsock によって接続がリセットされます。Discards any pending data and Winsock resets the connection.

IP スタックは、接続のラウンドトリップ時間に基づいて、使用する既定の IP プロトコルタイムアウト期間を計算します。The IP stack computes the default IP protocol time-out period to use based on the round trip time of the connection. ほとんどの場合、スタックによって計算されるタイムアウトは、アプリケーションで定義されているものよりも関連性が高くなります。In most cases, the time-out computed by the stack is more relevant than one defined by an application. これは、 LingerState プロパティが設定されていない場合のソケットの既定の動作です。This is the default behavior for a socket when the LingerState property is not set.

LingerTimeプロパティに格納されているプロパティ LingerState が既定の ip プロトコルタイムアウトよりも大きい値に設定されている場合でも、既定の ip プロトコルタイムアウトが適用され、上書きされます。When the LingerTime property stored in the LingerState property is set greater than the default IP protocol time-out, the default IP protocol time-out will still apply and override.

適用対象

こちらもご覧ください