Udostępnij za pośrednictwem


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 umożliwić wysyłanie danych w kolejce.

Close()

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

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 Shutdown przed wywołaniem Close metody . Gwarantuje to, że wszystkie dane zostaną wysłane i odebrane na połączonym gniazdie przed jego zamknięciem.

Jeśli musisz wywołać metodę Close bez pierwszego wywołania Shutdownmetody , możesz upewnić się, że dane w kolejce dla transmisji wychodzącej będą wysyłane przez ustawienie DontLingerSocket opcji na false i określenie interwału limitu czasu innego niż zero. Close następnie będzie blokować do momentu wysłania tych danych lub do momentu wygaśnięcia określonego limitu czasu. Jeśli ustawisz DontLingerfalse 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ę falsegniazda 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

Close(Int32)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby z określonym limitem czasu, aby umożliwić 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

Zaczekaj 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 Shutdown metody przed wywołaniem metody Close. Gwarantuje to, że wszystkie dane zostaną wysłane i odebrane na połączonym gniazdie przed jego zamknięciem.

Jeśli musisz wywołać metodę Close bez pierwszego wywołania Shutdownmetody , możesz upewnić się, że dane w kolejce dla transmisji wychodzącej będą wysyłane przez ustawienie DontLinger opcji na false i określenie interwału limitu czasu innego niż zero. Close następnie będzie blokować do momentu wysłania tych danych lub do momentu wygaśnięcia określonego limitu czasu. Jeśli ustawisz DontLingerfalse 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ę falsegniazda na , utwórz LingerOptionwłaściwość , ustaw właściwość enabled na true, i ustaw LingerTime właściwość na żądany okres limitu 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