Entwickler-Ecke
Internet / Netzwerk - Timeout für TClientSocket
FrEaKY - So 17.07.11 23:43
Titel: Timeout für TClientSocket
Wenn ich mit Open; versuche eine Verbindung aufzubauen aber der Server (noch) nicht erreichbar ist oder einfach die Verbindung stark ausgelastet ist, kommt ja schon nach sehr kurzer Zeit ein Fehler. Der ClientSocket hat aber keine TimeOut Property. Kann man es trotzdem irgendwo einstellen?
Narses - Mo 18.07.11 00:42
Moin!
FrEaKY hat folgendes geschrieben : |
| Wenn ich mit Open; versuche eine Verbindung aufzubauen aber der Server (noch) nicht erreichbar ist oder einfach die Verbindung stark ausgelastet ist, kommt ja schon nach sehr kurzer Zeit ein Fehler. |
Du wirfst hier mehrere verschiedene Sachen in einen Topf, deshalb wirkt das unverständlich. Ist der Zielhost überhaupt erreichbar, ist der listening socket dort geöffnet, etc.pp. Je nach der Ursache ist der Timeout anders bzw. gar nicht vorhanden.
FrEaKY hat folgendes geschrieben : |
| Der ClientSocket hat aber keine TimeOut Property. Kann man es trotzdem irgendwo einstellen? |
Der TClientSocket überlässt diese Einstellungen dem Betriebssystem. Wenn du die Default-Connect-Timeoutzeit ändern willst, musst du in der Registry rumfummeln (wovon ich dir dringend abraten möchte).
cu
Narses
FrEaKY - Mo 18.07.11 01:17
Okay danke.
Aber beim IdTCPClient von Indy kann man halt den Timeout mit angeben:
Connect(const ATimeout: Integer = -1).
Deswegen meine Frage...
Narses - Mo 18.07.11 01:27
Moin!
FrEaKY hat folgendes geschrieben : |
Aber beim IdTCPClient von Indy kann man halt den Timeout mit angeben:
Connect(const ATimeout: Integer = -1). |
Die arbeiten auch nicht asynchron sondern blocking mit Threads. AFAIR ist dieser spezielle Timeout nämlich gar kein Winsock-Timeout, sondern die brechen den Thread ab, wenn der nach der angegebenen Zeit nicht connected hat. :? :nixweiss:
cu
Narses
FrEaKY - Mo 18.07.11 02:26
Aha! Das kann man doch sicherlich auch mit dem ClientSocket machen. Ich nehme mal an, der muss dann auch blocking betrieben werden wenn man es mit Thread macht?
Narses - Mo 18.07.11 03:13
Moin!
FrEaKY hat folgendes geschrieben : |
| Das kann man doch sicherlich auch mit dem ClientSocket machen. Ich nehme mal an, der muss dann auch blocking betrieben werden wenn man es mit Thread macht? |
Ähm, wozu? :nixweiss: Dann kannst du doch auch gleich die Indy-Kompo nehmen... :nut:
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!