Freigeben über


Socket.Shutdown(SocketShutdown) Methode

Definition

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.

Gilt für:

Weitere Informationen