Socket.Close Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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ę false
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
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ę false
gniazda 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.