Autor Beitrag
Sephiroth
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Fr 11.05.07 09:38 
Hallo,

ich benutze die TIdTime-Komponente von Indy um die lokale Uhr entsprechend richtig einzustellen.
Nun bin ich auf folgendes Problem gestoßen: Wenn ich mich auf einen Server verbinde der extrem langsam ist (evtl. auch nicht erreichbar), dann bleibt meine Applikation für ca. 20-60 sekunden hängen (ohne CPU-Last zu erzeugen). Danach bekomm ich die Fehlermeldung: "Socker Error # 10060 Connection timed out."

Ich habe in der Komponente allerdings eingestellt, dass "Timeout" = 2500 ist. Bei Server, die gut erreichbar sind, funktioniert es wunderbar.

Jetzt meine Frage: Bekomm ich das irgendwie hin, dass meine Applikation nicht hängen bleibt, wenn ein Server nicht erreichbar ist? Evtl. mit einen Thread?

Dinge die ich bereits getestet habe:

- Im OnWork-Ereignis hab ich ein Application.Processmessages eingebaut, allerdings wird dieses Ereignis währenddessen nicht aufgerufen
- Eine TIdAntiFreeze-Komponente platziert. Hat keine Unterscheid gebracht.

Falls es jemand testen will: Einfach mal nen Testprojekt anlegen, eine TIdTime-Komponente platzieren, als Host die IP: 192.43.244.18 eintragen und zum Schluss IdTime.DateTime im Code aufrufen.


Schonmal vielen Dank für eure Antworten
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 11.05.07 10:03 
Moin!

user profile iconSephiroth hat folgendes geschrieben:
Bekomm ich das irgendwie hin, dass meine Applikation nicht hängen bleibt, wenn ein Server nicht erreichbar ist? Evtl. mit einen Thread?

Yip, genau so. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.