Socket.Close メソッド

定義

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送信キューに格納されたデータを自動的に破棄します。

注意

ソケット オプションfalseDontLinger設定するには、有効な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することをお勧めします。 これにより、接続されているソケットで閉じる前にすべてのデータが送受信されます。

最初に呼び出さずに呼び出ShutdownClose必要がある場合は、オプションを設定DontLingerして 0 以外のタイムアウト間隔を指定することで、送信用にキューに登録されたデータが確実にfalse送信されるようにすることができます。 Close は、このデータが送信されるまで、または指定されたタイムアウトの有効期限が切れるまでブロックされます。 タイムアウト間隔を 0 にfalse設定DontLingerして指定した場合は、接続を解放し、Close送信キューに格納されたデータを自動的に破棄します。

注意

ソケット オプションfalseDontLinger設定するには、有効なLingerOptionプロパティを作成し、有効なプロパティをtrue設定し、プロパティをLingerTime目的のタイムアウト期間に設定します。 これを LingerOption ソケット オプションと共に DontLinger 使用してメソッドを SetSocketOption 呼び出します。

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください

こちらもご覧ください

適用対象