Socket.Close Methode

Definition

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.

Überlädt

Close()

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.

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.

Close()

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.

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

Beispiele

Im folgenden Codebeispiel wird eine 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 Remotehostverbindung und gibt alle verwalteten und nicht verwalteten Ressourcen frei, die dem Zugeordneten Socketzugeordnet sind. Nach dem Schließen wird die Connected Eigenschaft auf false.

Bei verbindungsorientierten Protokollen wird empfohlen, vor dem Aufrufen der Close Methode aufzurufenShutdown. Dadurch wird sichergestellt, dass alle Daten an den verbundenen Socket gesendet und empfangen werden, bevor sie geschlossen wird.

Wenn Sie ohne ersten Anruf anrufen Close Shutdownmüssen, können Sie sicherstellen, dass datenwarteschlangen für ausgehende Übertragung gesendet werden, indem Sie die DontLingerSocket Option false auf und angeben ein Nicht-Null-Timeoutintervall festlegen. Close blockiert dann, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft. Wenn Sie ein Timeoutintervall null festlegen DontLinger false und angeben, Close wird die Verbindung freigegeben und ausgehende Warteschlangedaten automatisch verworfen.

Hinweis

Zum Festlegen der DontLinger Socketoption auf false, erstellen Sie eine LingerOption, legen Sie die aktivierte Eigenschaft auf true, und legen Sie die LingerTime Eigenschaft auf den gewünschten Timeoutzeitraum fest. Verwenden Sie dies LingerOption zusammen mit der DontLinger Socketoption, um die SetSocketOption Methode aufzurufen.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter "Netzwerkablaufverfolgung" im .NET Framework.

Siehe auch

Gilt für

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.

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 Millisekunden, um alle verbleibenden Daten zu senden, und schließen Sie dann den Socket.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie eine 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 Remotehostverbindung und gibt alle verwalteten und nicht verwalteten Ressourcen frei, die dem Zugeordneten Socketzugeordnet sind. Nach dem Schließen wird die Connected Eigenschaft auf false.

Bei verbindungsorientierten Protokollen empfiehlt es sich, vor dem Aufrufen anzurufen Shutdown Close. Dadurch wird sichergestellt, dass alle Daten an den verbundenen Socket gesendet und empfangen werden, bevor sie geschlossen wird.

Wenn Sie ohne ersten Anruf anrufen Close Shutdownmüssen, können Sie sicherstellen, dass datenwarteschlangen für ausgehende Übertragung gesendet werden, indem Sie die DontLinger Option false auf und angeben ein Nicht-Null-Timeoutintervall festlegen. Close blockiert dann, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft. Wenn Sie ein Timeoutintervall null festlegen DontLinger false und angeben, Close wird die Verbindung freigegeben und ausgehende Warteschlangedaten automatisch verworfen.

Hinweis

Zum Festlegen der DontLinger Socketoption auf false, erstellen Sie eine LingerOption, legen Sie die aktivierte Eigenschaft auf true, und legen Sie die LingerTime Eigenschaft auf den gewünschten Timeoutzeitraum fest. Verwenden Sie dies LingerOption zusammen mit der DontLinger Socketoption, um die SetSocketOption Methode aufzurufen.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter "Netzwerkablaufverfolgung" im .NET Framework.

Siehe auch

Gilt für