Socket.Shutdown(SocketShutdown) Methode

Definition

Deaktiviert Senden und Empfangen für einen Socket.Disables sends and receives on a 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.One of the SocketShutdown values that specifies the operation that will no longer be allowed.

Ausnahmen

Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Der Socket wurde geschlossen.The Socket has been closed.

Beispiele

Im folgenden Codebeispiel wird Shutdown verwendet, um die Socketzu deaktivieren.The following code example uses Shutdown to disable the 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

Hinweise

Wenn Sie einen Verbindungs orientierten Socketverwenden, sollten Sie vor dem Schließen der Socketstets die Shutdown-Methode aufzurufen.When using a connection-oriented Socket, always call the Shutdown method before closing the Socket. Dadurch wird sichergestellt, dass alle Daten vor dem Schließen des verbundenen Sockets gesendet und empfangen werden.This ensures that all data is sent and received on the connected socket before it is closed.

Ruft die Close-Methode auf, um alle verwalteten und nicht verwalteten Ressourcen freizugeben, die der Socketzugeordnet sind.Call the Close method to free all managed and unmanaged resources associated with the Socket. Versuchen Sie nicht, die Socket nach dem Schließen wiederzuverwenden.Do not attempt to reuse the Socket after closing.

Die folgende Tabelle zeigt die SocketShutdown Enumerationswerte, die für den how-Parameter gültig sind.The following table shows the SocketShutdown enumeration values that are valid for the how parameter.

WertValue BeschreibungDescription
SendenSend Das Senden auf diesem Socketdeaktivieren.Disable sending on this Socket.
EmpfangenReceive Hiermit wird der Empfang auf diesem Socketdeaktiviert.Disable receiving on this Socket.
BeidesBoth Hiermit wird das Senden und empfangen von auf diesem Socketdeaktiviert.Disable both sending and receiving on this Socket.

Wenn Sie how auf Send festlegen, wird angegeben, dass nachfolgende Aufrufe von Send nicht zulässig sind.Setting how to Send specifies that subsequent calls to Send are not allowed. Wenn Sie einen Verbindungs losen Socketverwenden, hat die Angabe Send keine Auswirkung.If you are using a connectionless Socket, specifying Send will have no effect.

Wenn Sie how auf Receive festlegen, wird angegeben, dass nachfolgende Aufrufe von Receive nicht zulässig sind.Setting how to Receive specifies that subsequent calls to Receive are not allowed. Dies hat keine Auswirkung auf niedrigere Protokoll Ebenen.This has no effect on lower protocol layers. Wenn Sie ein Verbindungs orientiertes Protokoll verwenden, wird die Verbindung beendet, wenn eine der folgenden Bedingungen erfüllt ist, nachdem Shutdown aufgerufen wurde:If you are using a connection-oriented protocol, the connection is terminated if either of the following conditions exist after a call to Shutdown :

  • Die Daten befinden sich im eingehenden Netzwerk Puffer, der darauf wartet, empfangen zu werden.Data is in the incoming network buffer waiting to be received.

  • Es wurden weitere Daten gefunden.More data has arrived.

Wenn Sie ein verbindungsloses Protokoll verwenden, werden Datagramme akzeptiert und in die Warteschlange eingereiht.If you are using a connectionless protocol, datagrams are accepted and queued. Wenn jedoch kein Pufferspeicher für zusätzliche Eingehende Datagramme verfügbar ist, werden Sie verworfen, und es wird kein Fehler an den Absender zurückgegeben.However, if no buffer space is available for additional incoming datagrams, they will be discarded and no error will be returned to the sender. Die Verwendung von Shutdown auf einem Verbindungs losen Socket wird nicht empfohlen.Using Shutdown on a connectionless Socket is not recommended.

Wenn Sie how auf Both festlegen, werden Sende-und Empfangs Vorgänge wie oben beschrieben deaktiviert.Setting how to Both disables both sends and receives as described above.

Hinweis

Wenn Sie beim Aufrufen der Shutdown-Methode eine SocketException erhalten, verwenden Sie die SocketException.ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen.If you receive a SocketException when calling the Shutdown method, use the SocketException.ErrorCode property to obtain the specific error code. Nachdem Sie diesen Code abgerufen haben, finden Sie in der API-Fehlercode Dokumentation der Windows Sockets, Version 2 , eine ausführliche Beschreibung des Fehlers.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Gilt für:

Siehe auch