Socket.Shutdown(SocketShutdown) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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ě.
Byla Socket uzavřena.
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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro