Einzelnen Beitrag anzeigen

Exceeder

Registriert seit: 29. Mai 2006
24 Beiträge
 
#1

Indy9: Connected Eigenschaft funktioniert nicht

  Alt 9. Mär 2010, 09:11
Hallo,

ich habe folgendes Szenario in meiner Anwendung: Der Client baut zum Server eine Verbindung aus, die beiden machen ein Handshake. Anschließend liest der Client nur noch auf der Verbindung und wartet auf Kommandos vom Server. Parallel hat der Client noch schreibende Verbindungen offen, welche auf ähnliche Art und Weise erzeugt wurden.

Nun ist das Problem, dass die Funktion "Connected" der TIdTCPConnection auch dann noch True zurückliefert, wenn zwischenzeitlich der Rechner in den Standby geschickt wurde oder wenn z.B. das Netzwerkkabel (sowohl auf Client als auch auf Serverseite) entfernt wurde. Selbiges gilt für ein zusammengebrochendes WLAN bzw. UMTS/GPRS.

Der Server merkt ja nun spätestens beim nächsten Kommando, dass der Client nicht mehr da ist. Der Client bekommt allerdings niemals mit, dass die Verbindung unterbrochen wurde.

Das Problem tritt Hauptsächlich mit Hardware auf welche maximal 3 Jahre ist auf. Ich vermute deshalb, dass es ein Feature der Netzwerkkomponenten ist, dies nicht mehr mitzuteilen.

Wie begegnet man dem Problem am besten? Ideal wäre es natürlich, wenn der Client sofort merkt, wenn die Verbindung weg ist. Dann könnte der Status der Verbindung zurückgesetzt werden. In periodischen Abständen (oder noch besser, wenn die Verbindung wieder da ist), könnte der Handshake mit dem Server erneut vollzogen werden.

Jemand eine Idee dazu?
  Mit Zitat antworten Zitat