Socket.Shutdown(SocketShutdown) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Deaktiviert Senden und Empfangen für einen 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)
Parameter
- how
- SocketShutdown
Einer der SocketShutdown-Werte, der den Vorgang angibt, der nicht mehr zulässig ist.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Beispiele
Im folgenden Codebeispiel wird Shutdown verwendet, um das Socketzu deaktivieren.
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
Hinweise
Wenn Sie eine verbindungsorientierte SocketMethode verwenden, rufen Sie immer die Shutdown -Methode auf, bevor Sie schließen Socket. Dadurch wird sichergestellt, dass alle Daten auf dem verbundenen Socket gesendet und empfangen werden, bevor sie geschlossen werden.
Rufen Sie die Close -Methode auf, um alle verwalteten und nicht verwalteten Ressourcen freizugeben, die dem Socketzugeordnet sind. Versuchen Sie nicht, das nach dem Schließen wiederzuverwenden Socket .
In der folgenden Tabelle sind die SocketShutdown Enumerationswerte aufgeführt, die für den how
Parameter gültig sind.
Wert | Beschreibung |
---|---|
Send | Deaktivieren Sie das Senden für diesen Socket. |
Empfangen | Deaktivieren Sie den Empfang für dieses Socket. |
Beide | Deaktivieren Sie sowohl senden als auch empfangen für dieses Socket. |
Die Einstellung how
auf Send gibt an, dass nachfolgende Aufrufe von Send nicht zulässig sind. Wenn Sie einen verbindungslosen Socketverwenden, hat die Angabe Send keine Auswirkung.
Die Einstellung how
auf Receive gibt an, dass nachfolgende Aufrufe von Receive nicht zulässig sind. Dies hat keine Auswirkungen auf niedrigere Protokollebenen. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, wird die Verbindung beendet, wenn nach einem Aufruf Shutdown von eine der folgenden Bedingungen vorhanden ist:
Daten befinden sich im eingehenden Netzwerkpuffer, die auf den Empfang warten.
Weitere Daten sind eingetroffen.
Wenn Sie ein verbindungsloses Protokoll verwenden, werden Datagramme akzeptiert und in die Warteschlange gestellt. Wenn jedoch kein Pufferspeicherplatz für zusätzliche eingehende Datagramme verfügbar ist, werden diese verworfen, und es wird kein Fehler an den Absender zurückgegeben. Es wird nicht empfohlen, eine Verbindung ohne Socket Verbindung zu verwendenShutdown.
Die Einstellung how
für Both deaktiviert sowohl senden als auch empfangen, wie oben beschrieben.
Hinweis
Wenn Sie beim Aufrufen der Shutdown -Methode eine SocketException erhalten, verwenden Sie die SocketException.ErrorCode -Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie eine ausführliche Beschreibung des Fehlers in der Dokumentation zur Windows Sockets-API, Version 2 .
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.