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)
パラメーター
例
次の例では、Close メソッドを呼び出した後、以前に作成したSocketを 1 秒残すよう設定します。
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 パラメーターを使用して、close メソッドが呼び出された後も、Socketが未送信のデータを送信し続けるかどうかを指定します。
seconds パラメーターを使用して、Socketがタイムアウトになる前に未送信データの転送を試みる期間を指定します。enable パラメーターにtrueを指定し、seconds パラメーターに 0 を指定すると、Socketは送信ネットワーク バッファーにデータが残らなくなるまでデータの送信を試みます。
enable パラメーターにfalseを指定すると、Socketはすぐに閉じられ、未送受信のデータは失われます。
次の表では、T:System.Net.Sockets.LingerOption インスタンスが作成され、Socket.LingerState プロパティまたは TcpClient.LingerState プロパティで設定された場合の、enableパラメーターとseconds パラメーターの使用可能な値に基づいて、Socket.CloseメソッドとTcpClient.Close メソッドの動作について説明します。
enable |
seconds |
行動 |
|---|---|---|
false (無効)、既定値 |
タイムアウトは適用されません (既定値)。 | 既定の IP プロトコルタイムアウトが期限切れになるまで、接続指向ソケット (TCP など) の保留中のデータの送信を試みます。 |
true (有効) |
0 以外のタイムアウト | 指定したタイムアウトが切れるまで保留中のデータの送信を試行し、試行が失敗した場合、Winsock は接続をリセットします。 |
true (有効) |
タイムアウトが 0 です。 | 保留中のデータを破棄します。 接続指向ソケット (TCP など) の場合、Winsock は接続をリセットします。 |
IP スタックは、接続のラウンド トリップ時間に基づいて、使用する既定の IP プロトコルタイムアウト期間を計算します。 ほとんどの場合、スタックによって計算されるタイムアウトは、アプリケーションによって定義されたタイムアウトよりも関連性が高くなります。 これは、 LingerState プロパティが設定されていない場合のソケットの既定の動作です。
LingerState プロパティに格納されているLingerTime プロパティが既定の IP プロトコルタイムアウトより大きい値に設定されている場合でも、既定の IP プロトコルのタイムアウトが適用され、オーバーライドされます。