Socket.Close メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。
オーバーロード
Close() |
Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。 |
Close(Int32) |
Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。 |
Close()
Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。
public:
void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()
例
次のコード例では、 Socket.
try
{
aSocket->Shutdown(SocketShutdown::Both);
aSocket->Close();
}
catch (...)
{
aSocket->Close();
throw;
}
if ( aSocket->Connected )
{
Console::WriteLine( "Winsock error: {0}", Convert::ToString(
System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
注釈
このメソッドは Close 、リモート ホスト接続を閉じ、に関連付けられているすべてのマネージド リソースとアンマネージド リソースを解放します Socket。 閉じると、 Connected プロパティは false
.
接続指向プロトコルの場合は、メソッドを呼び出す前に呼び出ShutdownCloseすることをお勧めします。 これにより、接続されているソケットで閉じる前にすべてのデータが送受信されます。
最初に呼び出さずに呼び出すClose必要がある場合は、オプションを設定DontLingerSocketして 0 以外のタイムアウト間隔を指定することで、送信用にキューに登録されたデータが確実にfalse
送信されるようにShutdownすることができます。 Close は、このデータが送信されるまで、または指定されたタイムアウトの有効期限が切れるまでブロックされます。 タイムアウト間隔を 0 にfalse
設定DontLingerして指定した場合は、接続を解放し、Close送信キューに格納されたデータを自動的に破棄します。
注意
ソケット オプションfalse
をDontLinger設定するには、有効なLingerOptionプロパティを作成し、有効なプロパティをtrue
設定し、プロパティをLingerTime目的のタイムアウト期間に設定します。 これを LingerOption ソケット オプションと共に DontLinger 使用してメソッドを SetSocketOption 呼び出します。
注意
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
適用対象
Close(Int32)
Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。
public:
void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)
パラメーター
- timeout
- Int32
残りのデータが送信されるまで最大 timeout
ミリ秒待ってから、ソケットを閉じます。
例
次のコード例は、 Socket.
try
{
aSocket->Shutdown(SocketShutdown::Both);
aSocket->Close();
}
catch (...)
{
aSocket->Close();
throw;
}
if ( aSocket->Connected )
{
Console::WriteLine( "Winsock error: {0}", Convert::ToString(
System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
注釈
このメソッドは Close 、リモート ホスト接続を閉じ、に関連付けられているすべてのマネージド リソースとアンマネージド リソースを解放します Socket。 閉じると、 Connected プロパティは false
.
接続指向プロトコルの場合は、呼び出す前にClose呼び出Shutdownすることをお勧めします。 これにより、接続されているソケットで閉じる前にすべてのデータが送受信されます。
最初に呼び出さずに呼び出ShutdownすClose必要がある場合は、オプションを設定DontLingerして 0 以外のタイムアウト間隔を指定することで、送信用にキューに登録されたデータが確実にfalse
送信されるようにすることができます。 Close は、このデータが送信されるまで、または指定されたタイムアウトの有効期限が切れるまでブロックされます。 タイムアウト間隔を 0 にfalse
設定DontLingerして指定した場合は、接続を解放し、Close送信キューに格納されたデータを自動的に破棄します。
注意
ソケット オプションfalse
をDontLinger設定するには、有効なLingerOptionプロパティを作成し、有効なプロパティをtrue
設定し、プロパティをLingerTime目的のタイムアウト期間に設定します。 これを LingerOption ソケット オプションと共に DontLinger 使用してメソッドを SetSocketOption 呼び出します。
注意
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。