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 は、このデータが送信されるか指定したタイムアウト時間が経過するまでブロックします。 DontLinger を false に設定し、ゼロのタイムアウト間隔を指定すると、 Close は接続を解放し、発信キューに置かれたデータは自動的に破棄されます。
メモ DontLinger ソケット オプションを false に設定するには、 LingerOption を作成し、有効にされたプロパティを false に設定して、 LingerTime プロパティを必要なタイムアウト時間に設定します。この LingerOption と DontLinger ソケット オプションを使用して、 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