次の方法で共有


LingerOption クラス

Close を呼び出した後で Socket の接続を維持するかどうかを指定します。また、送信するデータが残っている場合は、接続を維持する時間を指定します。

この型のすべてのメンバの一覧については、LingerOption メンバ を参照してください。

System.Object
   System.Net.Sockets.LingerOption

Public Class LingerOption
[C#]
public class LingerOption
[C++]
public __gc class LingerOption
[JScript]
public class LingerOption

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

Socket を閉じた後もまだ、発信ネットワーク バッファ内に使用可能なデータがある場合があります。 Socket を閉じた後の、未送信データを転送する時間を指定する場合は、 LingerOption を作成し、 enabled パラメータを true に設定し、 seconds パラメータを、希望する時間に設定します。 seconds パラメータは、 Socket の接続を維持する時間を示します。この時間が経過するとタイムアウトが発生します。 Socket を閉じることによって接続を切断する場合は、 LingerOption を作成するときに、 enabled パラメータを false に設定します。この場合、 Socket はすぐに閉じられ、未送信のデータは失われます。 LingerOption を作成したら、 Socket.SetSocketOption メソッドに渡します。 TcpClient とデータの送受信を行っている場合は、 LingerOptionTcpClient.LingerState メソッドに渡します。

既定では、接続の維持はタイムアウト 0 で有効になっています。そのため、 Socket は、発信ネットワーク バッファに残っているデータがなくなるまで保留データを送信しようとします。

使用例

[Visual Basic, C#, C++] 作成済みの Socket に対し、 Close メソッドが呼び出されてから 1 秒間接続を維持するように設定する例を次に示します。

 
Dim myOpts As New LingerOption(True, 1)
       
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
   myOpts)


[C#] 
LingerOption myOpts = new LingerOption(true,1);

mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);


[C++] 
LingerOption* myOpts = new LingerOption(true,1);

mySocket->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Net.Sockets

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System (System.dll 内)

参照

LingerOption メンバ | System.Net.Sockets 名前空間