Socket.Shutdown(SocketShutdown) 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.
Wyłącza wysyłanie i odbieranie w obiekcie Socket.
public:
void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown (System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)
Parametry
- how
- SocketShutdown
SocketShutdown Jedna z wartości określających operację, która nie będzie już dozwolona.
Wyjątki
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Przykłady
W poniższym przykładzie kodu użyto Shutdown polecenia , aby wyłączyć 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
W przypadku korzystania z metody zorientowanej na Socketpołączenie zawsze wywołaj metodę Shutdown przed zamknięciem Socketmetody . Gwarantuje to, że wszystkie dane zostaną wysłane i odebrane na połączonym gniazdie przed jego zamknięciem.
Wywołaj metodę , Close aby zwolnić wszystkie zarządzane i niezarządzane zasoby skojarzone z programem Socket. Nie należy próbować ponownie używać elementu Socket po zamknięciu.
W poniższej SocketShutdown tabeli przedstawiono wartości wyliczenia, które są prawidłowe dla parametru how
.
Wartość | Opis |
---|---|
Wysyłanie | Wyłącz wysyłanie w tym Socketobiekcie . |
Odbieranie | Wyłącz odbieranie dla tego Socketelementu . |
Oba | Wyłącz wysyłanie i odbieranie w tym Socketobiekcie . |
Ustawienie how
określa Send , że kolejne wywołania do Send nie są dozwolone. Jeśli używasz bez połączenia Socket, określenie Send nie będzie miało żadnego efektu.
Ustawienie how
określa Receive , że kolejne wywołania do Receive nie są dozwolone. Nie ma to wpływu na niższe warstwy protokołu. Jeśli używasz protokołu zorientowanego na połączenie, połączenie zostanie przerwane, jeśli którykolwiek z następujących warunków istnieje po wywołaniu metody Shutdown :
Dane są w buforze sieci przychodzącej oczekujące na odebranie.
Przybyło więcej danych.
Jeśli używasz protokołu bez połączenia, datagramy są akceptowane i kolejkowane. Jeśli jednak dla dodatkowych przychodzących datagramów nie jest dostępne żadne miejsce w buforze, zostaną one odrzucone i żaden błąd nie zostanie zwrócony do nadawcy. Używanie w Shutdown przypadku bez połączenia Socket nie jest zalecane.
Ustawienie how
wyłącza Both zarówno wysyłanie, jak i odbieranie zgodnie z powyższym opisem.
Uwaga
Jeśli podczas wywoływania Shutdown metody wystąpi błądSocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API Windows Sockets w wersji 2 , aby uzyskać szczegółowy opis błędu.
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.
Dotyczy
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla