Socket.Shutdown(SocketShutdown) Metoda

Definice

Zakáže odesílání a přijímání na .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

Jedna z SocketShutdown hodnot, která určuje operaci, která již nebude povolena.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Příklady

Následující příklad kódu používá Shutdown k zakázání .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

Poznámky

Při použití metody orientované Socketna připojení vždy volejte metodu Shutdown před zavřením Socketmetody . Tím se zajistí, že se všechna data odešlou a přijímají na připojeném soketu před tím, než se zavřou.

Voláním Close metody uvolněte všechny spravované a nespravované prostředky přidružené k Socket. Nepokoušejte se znovu použít Socket po zavření.

Následující tabulka uvádí hodnoty výčtu SocketShutdown , které jsou platné pro how parametr .

Hodnota Popis
Odeslat Zakažte odesílání pro tento Socket.
Přijmout Zakázat příjem pro tento Socket.
Obojí U tohoto Socketzařízení zakažte odesílání i přijímání.

Nastavení how na Send určuje, že další volání Send nejsou povolená. Pokud používáte bez Socketpřipojení , nebude mít zadání Send žádný vliv.

Nastavení how na Receive určuje, že další volání Receive nejsou povolená. To nemá žádný vliv na nižší vrstvy protokolu. Pokud používáte protokol orientovaný na připojení, připojení se ukončí, pokud po volání Shutdown služby existuje následující podmínky:

  • Data jsou v příchozí síťové vyrovnávací paměti čekající na přijetí.

  • Přišla další data.

Pokud používáte protokol bez připojení, datagramy se přijímají a zadají do fronty. Pokud ale není k dispozici žádné místo ve vyrovnávací paměti pro další příchozí datagramy, budou zahozeny a odesílateli se nevrátí žádná chyba. Použití Shutdown v bezpojení Socket se nedoporučuje.

Nastavení how na zakáže Both odesílání i přijímání, jak je popsáno výše.

Poznámka

Pokud se při volání Shutdown metody zobrazí SocketException , pomocí SocketException.ErrorCode vlastnosti získejte konkrétní kód chyby. Jakmile tento kód získáte, projděte si podrobný popis chyby v dokumentaci k rozhraní API rozhraní Windows Sockets verze 2 .

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Platí pro

Viz také