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

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 このインスタンスに設定します。

次の表では、プロパティのClose使用可能な値とLingerTimeプロパティに格納されているLingerStateプロパティのEnabledメソッドの動作について説明します。

LingerState.Enabled LingerState.LingerTime 動作
false (無効)、既定値 タイムアウトは適用されません (既定)。 既定の IP プロトコルのタイムアウトが期限切れになるまで、保留中のデータの送信を試みます。
true (有効) 0 以外のタイムアウト 指定したタイムアウトが切れるまで保留中のデータの送信を試み、試行が失敗した場合、Winsock は接続をリセットします。
true (有効) タイムアウトが 0 です。 保留中のデータを破棄し、Winsock によって接続がリセットされます。

IP スタックは、接続のラウンド トリップ時間に基づいて、使用する既定の IP プロトコルタイムアウト期間を計算します。 ほとんどの場合、スタックによって計算されるタイムアウトは、アプリケーションによって定義されたタイムアウトよりも関連性が高くなります。 これは、プロパティが設定されていない場合のソケットの既定の LingerState 動作です。

プロパティにLingerState格納されているプロパティが既定の LingerTime IP プロトコル タイムアウトより大きく設定されている場合でも、既定の IP プロトコルのタイムアウトが適用され、オーバーライドされます。

適用対象

こちらもご覧ください