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.
Została zamknięta Socket .
Przykłady
Poniższy przykład kodu używa polecenia Shutdown w celu wyłączenia polecenia 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 używania metody zorientowanej na Socketpołączenie należy zawsze wywołać metodę Shutdown przed zamknięciem Socketelementu . Gwarantuje to, że wszystkie dane są wysyłane i odbierane na podłą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ć Socket elementu 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 w tym Socketobiekcie . |
Oba | Wyłącz wysyłanie i odbieranie w tym Socketobiekcie . |
Ustawienie na how
Send wartość określa, że kolejne wywołania są Send niedozwolone. Jeśli używasz połączenia bez Socketpołączenia, określenie Send nie będzie miało wpływu.
Ustawienie na how
Receive wartość określa, że kolejne wywołania są Receive niedozwolone. 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 jeden 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 nie ma dostępnego miejsca buforowego dla dodatkowych przychodzących datagramów, zostaną one odrzucone i żaden błąd nie zostanie zwrócony do nadawcy. Korzystanie z Shutdown funkcji bez Socket połączenia nie jest zalecane.
Ustawienie powoduje how
Both wyłączenie zarówno wysyłania, jak i odbierania 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 gniazda systemu Windows 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.