Freigeben über


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

SocketException

Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie im Abschnitt Hinweise.

ObjectDisposedException

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