Socket.Shutdown-Methode
Deaktiviert Senden und Empfangen für einen Socket.
Namespace: System.Net.Sockets
Assembly: System (in system.dll)
Syntax
'Declaration
Public Sub Shutdown ( _
how As SocketShutdown _
)
'Usage
Dim instance As Socket
Dim how As SocketShutdown
instance.Shutdown(how)
public void Shutdown (
SocketShutdown how
)
public:
void Shutdown (
SocketShutdown how
)
public void Shutdown (
SocketShutdown how
)
public function Shutdown (
how : SocketShutdown
)
Parameter
- how
Einer der SocketShutdown-Werte, der den Vorgang angibt, der nicht mehr zulässig ist.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise. |
|
Der Socket wurde geschlossen. |
Hinweise
Rufen Sie bei einem verbindungsorientierten Socket immer die Shutdown-Methode auf, bevor Sie den Socket schließen. Dadurch wird sichergestellt, dass alle Daten vor dem Schließen des verbundenen Sockets gesendet bzw. empfangen werden.
Rufen Sie die Close-Methode auf, um alle dem Socket zugeordneten verwalteten und nicht verwalteten Ressourcen freizugeben. Verwenden Sie den Socket nach dem Schließen nicht erneut.
Die folgende Tabelle enthält die SocketShutdown-Enumerationswerte, die für den how-Parameter gültig sind.
Wert |
Beschreibung |
---|---|
Send |
Deaktiviert das Senden für diesen Socket. |
Receive |
Deaktiviert das Empfangen für diesen Socket. |
Both |
Deaktiviert das Senden und Empfangen für diesen Socket. |
Wenn Sie how auf Send festlegen, sind keine weiteren Aufrufe von Send zulässig. Bei einem verbindungslosen Socket hat die Angabe von Send keine Auswirkungen.
Wenn Sie how auf Receive festlegen, sind keine weiteren Aufrufe von Receive zulässig. Dies hat keine Auswirkungen auf die unteren Protokollschichten. Wenn Sie ein verbindungsorientiertes Protokoll verwenden, wird die Verbindung beendet, wenn einer der folgenden Zustände nach einem Aufruf von Shutdown vorliegt:
Im Netzwerkeingangspuffer befinden sich Daten, die empfangen werden sollen.
Weitere Daten sind eingetroffen.
Bei einem verbindungslosen Protokoll werden Datagramme angenommen und in die Warteschlange gestellt. Wenn jedoch kein Pufferplatz für weitere eingehende Datagramme zur Verfügung steht, werden diese verworfen und es wird kein Fehler an den Absender zurückgegeben. Es empfiehlt sich nicht, Shutdown für einen verbindungslosen Socket zu verwenden.
Wenn Sie how auf Both festlegen, deaktivieren Sie sowohl das Senden als auch das Empfangen, wie oben beschrieben.
Hinweis
Wenn beim Aufrufen der Shutdown-Methode eine SocketException ausgelöst wird, können Sie den spezifischen Fehlercode mit der SocketException.ErrorCode-Eigenschaft abrufen. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation der MSDN Library zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung.
Beispiel
Im folgenden Codebeispiel wird der Socket mit Shutdown deaktiviert.
aSocket.Shutdown(SocketShutdown.Both)
aSocket.Close()
End Sub 'SocketClose
aSocket.Shutdown(SocketShutdown.Both);
aSocket.Close();
aSocket->Shutdown( SocketShutdown::Both );
aSocket->Close();
if ( aSocket->Connected )
{
Console::WriteLine( "Winsock error: {0}", Convert::ToString(
System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
Socket-Klasse
Socket-Member
System.Net.Sockets-Namespace
Close
SocketShutdown