Sdílet prostřednictvím


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á už 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í připojení orientovaného Socketna připojení vždy volejte metodu Shutdown před zavřením Socket. Tím se zajistí, že se v připojeném soketu odešlou a přijímají všechna data před jeho zavření.

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 Zakažte příjem u tohoto Socket.
Obojí Zakažte odesílání i příjem na tomto Socketzařízení .

Nastavení how na Send určuje, že další volání nebudou Send povolena. 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í nebudou Receive povolena. 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í služby existuje kterákoli Shutdown z následujících podmínek:

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

  • Přišlo další data.

Pokud používáte protokol bez připojení, datagramy se přijmou 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 pro Both zakázání odesílání i přijímání, jak je popsáno výše.

Poznámka

Pokud se vám při volání Shutdown metody zobrazíSocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Jakmile tento kód získáte, projděte si podrobný popis chyby v dokumentaci k rozhraní API 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é