Socket.Close メソッド

定義

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

オーバーロード

Close()

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

Close(Int32)

Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。

Close()

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

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設定されます。

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

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

注意

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

Note

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

こちらもご覧ください

適用対象

Close(Int32)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

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設定されます。

接続指向プロトコルの場合は、 を呼び出す前に を呼び出ShutdownCloseすることをお勧めします。 これにより、接続されているソケットが閉じられる前にすべてのデータが確実に送受信されます。

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

注意

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

Note

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

こちらもご覧ください

適用対象