Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Winsock API disconnect oder Fehler abfangen

  Alt 5. Sep 2007, 20:20
Hi,

so wie beschrieben, der Client schickt alle 4 Min. (bei mir reicht das) einen Standardtext ("Ping"). Der Server erwartet diesen vom Client. Bleibt er aus, do disconnecte ich die Clientverbindung im Server. Das gleiche natürlich auch in Richtung Client. Ist die Verbindung unterbrochen, kümmert sich der Server nicht weiter drum. Der Client versucht periodisch den Server neu zu connecten. Klappt das nicht, kein Netz, kein Server etc. wirft die ClientSocket auf jeden Fall einen Error. Der kann abgefangen werden. Der Status bleibt im Fehlerfall immer auf dixconnect.

Schlussendlich unterstellt man, dass so lange mann Infos empfängt (beide Seiten) ist alles i.O. Wird eine Zeit lang (über Timeout) nichts empfangen, so stimmt was nicht und die Verbindung wird aktiv unterbrochen (Disconnect).

Natürlich kann man den Timer für den "Ping" nach dem Senden zurücksetzen. Es werden ja Daten empfangen/gesendet. Der "Ping" ist nur ein Ersatz, wenn man in der geforderten Zeit halt nichts zu senden hat. Man kann auch als Standardtext "Ich lebe noch!" nehmen.

Gruß oki
42
  Mit Zitat antworten Zitat