次の方法で共有


Socket.Close メソッド

Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。

Public Sub Close()
[C#]
public void Close();
[C++]
public: void Close();
[JScript]
public function Close();

解説

Close メソッドは、リモート ホスト接続を閉じて、 Socket に関連付けられたマネージ リソースとアンマネージ リソースすべてを解放します。閉じるときに、 Connected プロパティは false に設定されます。

コネクション指向のプロトコルの場合は、 Close メソッドの前に Shutdown を呼び出すことをお勧めします。これにより、閉じる前の接続ソケットですべてのデータが送受信されるようになります。

Shutdown を呼び出さずに Close を呼び出す必要がある場合は、 DontLinger Socket オプションを false に設定し、0 以外のタイムアウト間隔を指定することで、発信伝送キューに置かれたデータが送信されるようにします。この場合、 Close は、このデータが送信されるか指定したタイムアウト時間が経過するまでブロックします。 DontLingerfalse に設定し、ゼロのタイムアウト間隔を指定すると、 Close は接続を解放し、発信キューに置かれたデータは自動的に破棄されます。

メモ    DontLinger ソケット オプションを false に設定するには、 LingerOption を作成し、有効にされたプロパティを false に設定して、 LingerTime プロパティを必要なタイムアウト時間に設定します。この LingerOptionDontLinger ソケット オプションを使用して、 SetSocketOption メソッドを呼び出します。

使用例

[Visual Basic, C#, C++] Socket を閉じる例を次に示します。

 
aSocket.Shutdown(SocketShutdown.Both)
aSocket.Close()
If aSocket.Connected Then
    Console.WriteLine("Winsock error: " _
       + Convert.ToString(System.Runtime.InteropServices.Marshal.GetLastWin32Error()))
End If

[C#] 
aSocket.Shutdown(SocketShutdown.Both);
aSocket.Close();
if (aSocket.Connected) {
   Console.WriteLine("Winsock error: " + Convert.ToString(System.Runtime.InteropServices.Marshal.GetLastWin32Error()) );
}
   

[C++] 
aSocket->Shutdown(SocketShutdown::Both);
aSocket->Close();
if (aSocket->Connected) {
   Console::WriteLine(S"Winsock error: {0}", Convert::ToString(System::Runtime::InteropServices::Marshal::GetLastWin32Error()) );
}
   

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

必要条件

プラットフォーム: 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, Common Language Infrastructure (CLI) Standard

参照

Socket クラス | Socket メンバ | System.Net.Sockets 名前空間 | Shutdown | DontLinger