Socket.Close Methode

Definition

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.Closes the Socket connection and releases all associated resources.

Überlädt

Close()

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.Closes the Socket connection and releases all associated resources.

Close(Int32)

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen mit einem angegebenen Timeout frei, damit in der Warteschlange befindliche Daten gesendet werden können.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Close()

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.Closes the Socket connection and releases all associated resources.

public:
 void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()

Beispiele

Im folgenden Codebeispiel wird ein Socketgeschlossen.The following code example closes a 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

Die Close-Methode schließt die Remote Host Verbindung und gibt alle verwalteten und nicht verwalteten Ressourcen frei, die der Socketzugeordnet sind.The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. Beim Schließen wird die Connected-Eigenschaft auf falsefestgelegt.Upon closing, the Connected property is set to false.

Bei Verbindungs orientierten Protokollen wird empfohlen, dass Sie Shutdown aufrufen, bevor Sie die Close-Methode aufrufen.For connection-oriented protocols, it is recommended that you call Shutdown before calling the Close method. 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.

Wenn Sie Close aufrufen müssen, ohne zuerst Shutdownaufrufen zu müssen, können Sie sicherstellen, dass die Daten in der Warteschlange für ausgehende Übertragungen gesendet werden, indem Sie die DontLingerSocket-Option auf false festlegen und ein Timeout Intervall angeben, das nicht NULL ist.If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLingerSocket option to false and specifying a non-zero time-out interval. Close wird dann blockiert, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft.Close will then block until this data is sent or until the specified time-out expires. Wenn Sie DontLinger auf false festlegen und ein Timeout Intervall von NULL angeben, wird die Verbindung von Close freigegeben, und ausgehende Daten in der Warteschlange werden automatisch verworfen.If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

Hinweis

Wenn Sie die DontLinger Socketoption auf falsefestlegen möchten, erstellen Sie eine LingerOption, legen Sie die aktivierte Eigenschaft auf truefest, und legen Sie die LingerTime-Eigenschaft auf den gewünschten Timeout Zeitraum fest.To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time out period. Verwenden Sie diese LingerOption zusammen mit der Option DontLinger Socket, um die SetSocketOption-Methode aufzurufen.Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

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.

Siehe auch

Close(Int32)

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen mit einem angegebenen Timeout frei, damit in der Warteschlange befindliche Daten gesendet werden können.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

public:
 void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)

Parameter

timeout
Int32

Warten Sie bis zu timeout Sekunden, damit alle verbleibenden Daten gesendet werden, und schließen Sie dann den Socket.Wait up to timeout seconds to send any remaining data, then close the socket.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Socketgeschlossen wird.The following code example demonstrates how to close a 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

Die Close-Methode schließt die Remote Host Verbindung und gibt alle verwalteten und nicht verwalteten Ressourcen frei, die der Socketzugeordnet sind.The Close method closes the remote host connection and releases all managed and unmanaged resources associated with the Socket. Beim Schließen wird die Connected-Eigenschaft auf falsefestgelegt.Upon closing, the Connected property is set to false.

Bei Verbindungs orientierten Protokollen wird empfohlen, dass Sie Shutdown aufrufen, bevor Sie Closeaufrufen.For connection-oriented protocols, it is recommended that you call Shutdown before calling Close. 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.

Wenn Sie Close aufrufen müssen, ohne zuerst Shutdownaufzurufen, können Sie sicherstellen, dass die Daten in der Warteschlange für ausgehende Übertragungen gesendet werden, indem Sie die DontLinger-Option auf false festlegen und ein Timeout Intervall angeben, das nicht NULL ist.If you need to call Close without first calling Shutdown, you can ensure that data queued for outgoing transmission will be sent by setting the DontLinger option to false and specifying a non-zero time-out interval. Close wird dann blockiert, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft.Close will then block until this data is sent or until the specified time-out expires. Wenn Sie DontLinger auf false festlegen und ein Timeout Intervall von NULL angeben, wird die Verbindung von Close freigegeben, und ausgehende Daten in der Warteschlange werden automatisch verworfen.If you set DontLinger to false and specify a zero time-out interval, Close releases the connection and automatically discards outgoing queued data.

Hinweis

Wenn Sie die DontLinger Socketoption auf falsefestlegen möchten, erstellen Sie eine LingerOption, legen Sie die aktivierte Eigenschaft auf truefest, und legen Sie die LingerTime-Eigenschaft auf den gewünschten Timeout Zeitraum fest.To set the DontLinger socket option to false, create a LingerOption, set the enabled property to true, and set the LingerTime property to the desired time-out period. Verwenden Sie diese LingerOption zusammen mit der Option DontLinger Socket, um die SetSocketOption-Methode aufzurufen.Use this LingerOption along with the DontLinger socket option to call the SetSocketOption method.

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.

Siehe auch

Gilt für: