Socket.Close Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.