Socket.Close Metoda

Definicja

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby.

Przeciążenia

Close()

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby.

Close(Int32)

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby z określonym limitem czasu, aby zezwolić na wysyłanie danych w kolejce.

Close()

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby.

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

Przykłady

Poniższy przykład kodu zamyka element 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

Uwagi

Metoda Close zamyka połączenie hosta zdalnego i zwalnia wszystkie zarządzane i niezarządzane zasoby skojarzone z programem Socket. Po zamknięciu właściwość jest ustawiona Connected na false.

W przypadku protokołów zorientowanych na połączenie zaleca się wywołanie przed wywołaniem Shutdown Close metody . Gwarantuje to, że wszystkie dane są wysyłane i odbierane na podłączonym gniazdie przed jego zamknięciem.

Jeśli musisz wywołać wywołanie bez pierwszego wywołania Close Shutdownmetody , możesz upewnić się, że dane w kolejce do transmisji wychodzącej zostaną wysłane, ustawiającSocket DontLingeropcję na false i określając interwał przekroczenia limitu czasu bez zera. Close następnie zablokuje do momentu wysłania tych danych lub do momentu wygaśnięcia określonego limitu czasu. Jeśli ustawisz DontLinger false wartość i określisz zerowy interwał limitu czasu, Close zwalnia połączenie i automatycznie odrzuca wychodzące dane w kolejce.

Uwaga

Aby ustawić DontLinger opcję gniazda na false, utwórz LingerOptionwłaściwość , ustaw właściwość enabled na true, i ustaw LingerTime właściwość na żądany limit czasu. Użyj tej LingerOption opcji wraz z opcją DontLinger gniazda, aby wywołać metodę SetSocketOption .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy

Close(Int32)

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby z określonym limitem czasu, aby zezwolić na wysyłanie danych w kolejce.

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

Parametry

timeout
Int32

Poczekaj do timeout milisekund, aby wysłać wszystkie pozostałe dane, a następnie zamknij gniazdo.

Przykłady

W poniższym przykładzie kodu pokazano, jak zamknąć element 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

Uwagi

Metoda Close zamyka połączenie hosta zdalnego i zwalnia wszystkie zarządzane i niezarządzane zasoby skojarzone z programem Socket. Po zamknięciu właściwość jest ustawiona Connected na false.

W przypadku protokołów zorientowanych na połączenie zaleca się wywołanie przed wywołaniem Shutdown metody Close. Gwarantuje to, że wszystkie dane są wysyłane i odbierane na podłączonym gniazdie przed jego zamknięciem.

Jeśli musisz wywołać wywołanie bez pierwszego wywołania Close Shutdownmetody , możesz upewnić się, że dane w kolejce do transmisji wychodzącej zostaną wysłane, ustawiając DontLinger opcję na false i określając interwał przekroczenia limitu czasu bez zera. Close następnie zablokuje do momentu wysłania tych danych lub do momentu wygaśnięcia określonego limitu czasu. Jeśli ustawisz DontLinger false wartość i określisz zerowy interwał limitu czasu, Close zwalnia połączenie i automatycznie odrzuca wychodzące dane w kolejce.

Uwaga

Aby ustawić DontLinger falseopcję gniazda na , utwórz LingerOptionwłaściwość , ustaw właściwość enabled na true, i ustaw LingerTime właściwość na żądany limit czasu. Użyj tej LingerOption opcji wraz z opcją DontLinger gniazda, aby wywołać metodę SetSocketOption .

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy