Socket.Close メソッド

定義

Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。Closes the Socket connection and releases all associated resources.

オーバーロード

Close()

Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。Closes the Socket connection and releases all associated resources.

Close(Int32)

Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Close()

Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。Closes the Socket connection and releases all associated resources.

public:
 void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()

次のコード例では、Socketを閉じます。The following code example closes a 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に関連付けられているすべてのマネージリソースとアンマネージリソースを解放します。The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. 終了時に、Connected プロパティが falseに設定されます。Upon closing, the Connected property is set to false.

接続指向プロトコルの場合、Close メソッドを呼び出す前に Shutdown を呼び出すことをお勧めします。For connection-oriented protocols, it is recommended that you call Shutdown before calling the Close method. これにより、接続されたソケットが閉じられる前に、すべてのデータが送信され、受信されます。This ensures that all data is sent and received on the connected socket before it is closed.

最初に Shutdownを呼び出さずに Close を呼び出す必要がある場合は、DontLingerSocket オプションを false に設定し、ゼロ以外のタイムアウト期間を指定することにより、送信転送のためにキューに格納されたデータが送信されるようにすることができます。If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLingerSocket option to false and specifying a non-zero time-out interval. Close は、このデータが送信されるか、指定されたタイムアウトが経過するまでブロックされます。Close will then block until this data is sent or until the specified time-out expires. DontLingerfalse に設定し、タイムアウト間隔をゼロに指定した場合、Close は接続を解放し、発信キューに格納されたデータを自動的に破棄します。If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

注意

DontLinger socket オプションを falseに設定するには、LingerOptionを作成し、enabled プロパティを trueに設定して、LingerTime プロパティを目的のタイムアウト期間に設定します。To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time out period. この LingerOptionDontLinger socket オプションと共に使用して、SetSocketOption メソッドを呼び出します。Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

Close(Int32)

Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

public:
 void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)

パラメーター

timeout
Int32

最大 timeout 秒まで待ってから残りのデータを送信し、ソケットを閉じます。Wait up to timeout seconds to send any remaining data, then close the socket.

次のコード例は、Socketを閉じる方法を示しています。The following code example demonstrates how to close a 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に関連付けられているすべてのマネージリソースとアンマネージリソースを解放します。The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. 終了時に、Connected プロパティが falseに設定されます。Upon closing, the Connected property is set to false.

接続指向プロトコルの場合、Closeを呼び出す前に Shutdown を呼び出すことをお勧めします。For connection-oriented protocols, it is recommended that you call Shutdown before calling Close. これにより、接続されたソケットが閉じられる前に、すべてのデータが送信され、受信されます。This ensures that all data is sent and received on the connected socket before it is closed.

最初に Shutdownを呼び出さずに Close を呼び出す必要がある場合は、DontLinger オプションを false に設定し、ゼロ以外のタイムアウト期間を指定することによって、送信転送用のキューに置かれたデータが送信されるようにすることができます。If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLinger option to false and specifying a non-zero time-out interval. Close は、このデータが送信されるか、指定されたタイムアウトが経過するまでブロックされます。Close will then block until this data is sent or until the specified time-out expires. DontLingerfalse に設定し、タイムアウト間隔をゼロに指定した場合、Close は接続を解放し、発信キューに格納されたデータを自動的に破棄します。If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

注意

DontLinger socket オプションを falseに設定するには、LingerOptionを作成し、enabled プロパティを trueに設定して、LingerTime プロパティを目的のタイムアウト期間に設定します。To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time-out period. この LingerOptionDontLinger socket オプションと共に使用して、SetSocketOption メソッドを呼び出します。Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象