Teilen über


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()

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

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 ein Socketgeschlossen.

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 Socketzugeordnet sind. Beim Schließen wird die Connected -Eigenschaft auf falsefestgelegt.

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

Wenn Sie ohne ersten Aufruf aufrufen Close müssen, können Sie sicherstellen, dass daten, die für die ausgehende Übertragung in die Warteschlange gestellt werden, gesendet werden, indem Sie dieSocketDontLingerOption auf false festlegen und ein Timeoutintervall ungleich Null Shutdownangeben. Close wird dann blockiert, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft. Wenn Sie auf false festlegen DontLinger und ein Timeoutintervall von null angeben, Close wird die Verbindung freigegeben und ausgehende Daten in der Warteschlange automatisch verworfen.

Hinweis

Um die DontLinger Socketoption auf falsefestzulegen, erstellen Sie einen LingerOption, legen Sie die aktivierte Eigenschaft auf truefest, 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 in .NET Framework.

Weitere Informationen

Gilt für:

Close(Int32)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein geschlossen wird 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 Socketzugeordnet sind. Beim Schließen wird die Connected -Eigenschaft auf falsefestgelegt.

Für verbindungsorientierte Protokolle empfiehlt es sich, vor dem Aufrufen Closevon aufzurufenShutdown. Dadurch wird sichergestellt, dass alle Daten auf dem verbundenen Socket gesendet und empfangen werden, bevor sie geschlossen werden.

Wenn Sie ohne ersten Aufruf Shutdownaufrufen Close müssen, können Sie sicherstellen, dass daten, die für die ausgehende Übertragung in die Warteschlange gestellt werden, gesendet werden, indem Sie die DontLinger Option auf false festlegen und ein Timeoutintervall ungleich Null angeben. Close wird dann blockiert, bis diese Daten gesendet werden oder bis das angegebene Timeout abläuft. Wenn Sie auf false festlegen DontLinger und ein Timeoutintervall von null angeben, Close wird die Verbindung freigegeben und ausgehende Daten in der Warteschlange automatisch verworfen.

Hinweis

Um die DontLinger Socketoption auf falsefestzulegen, erstellen Sie einen LingerOption, legen Sie die aktivierte Eigenschaft auf truefest, 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 in .NET Framework.

Weitere Informationen

Gilt für: