Heim >Backend-Entwicklung >C++ >Wie stelle ich das Socket Connect Timeout in .NET ein?

Wie stelle ich das Socket Connect Timeout in .NET ein?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-10 11:08:43536Durchsuche

How to Set Socket Connect Timeout in .NET?

Zeitüberschreitungen bei Socket-Verbindungen in .NET-Anwendungen verwalten

Netzwerkkonnektivitätsprobleme können zu erheblichen Verzögerungen beim Herstellen von Socket-Verbindungen führen. Um unbestimmte Wartezeiten zu verhindern, bietet .NET Mechanismen zum Festlegen von Verbindungszeitlimits. Dadurch wird sichergestellt, dass Ihre Anwendung auch bei Netzwerkproblemen effizient reagiert.

Die Socket-Klasse in .NET bietet Methoden zum Verwalten von Verbindungszeitüberschreitungen. Während eine Standardeinstellung ein unbegrenztes Warten zulässt, ist die Implementierung eines Timeouts für ein robustes Anwendungsverhalten von entscheidender Bedeutung.

Der folgende Codeausschnitt zeigt, wie Sie mit BeginConnect und EndConnect ein 5-Sekunden-Verbindungszeitlimit festlegen:

<code class="language-csharp">IAsyncResult result = socket.BeginConnect(sIP, iPort, null, null);

bool success = result.AsyncWaitHandle.WaitOne(5000, true);

if (socket.Connected)
{
    socket.EndConnect(result);
}
else
{
    socket.Close();
    throw new ApplicationException("Connection to server failed.");
}</code>

Dieser Code versucht, innerhalb des angegebenen 5-Sekunden-Fensters eine Verbindung herzustellen. Wenn die Verbindung innerhalb dieser Zeit nicht erfolgreich ist, wird ein SocketException ausgelöst, das eine entsprechende Fehlerbehandlung in Ihrer Anwendung ermöglicht.

Es ist wichtig zu bedenken, dass in diesem Beispiel das .NET Framework v2 verwendet wird. Die spezifische Syntax kann in anderen .NET-Versionen geringfügig abweichen. Ausführliche Informationen zu Ihrer .NET-Umgebung finden Sie in der offiziellen Microsoft-Dokumentation.

Das obige ist der detaillierte Inhalt vonWie stelle ich das Socket Connect Timeout in .NET ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn