Announcement

Collapse
No announcement yet.

Abbruch des Servers auf der Clientseite registrieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abbruch des Servers auf der Clientseite registrieren

    Hallo,<br>
    ich habe folgendes Problem. Ein Programm von mir baut als Client eine Verbindung zu einem Server auf. Dazu benutze ich einen TClientSocket, der in einem Thread läuft. Der Client empfängt dabei nur Daten vom Server, ohne jemals selber eine Anfrage zu stellen. <br>
    Nun suche ich nach einer Möglichkeit, festzustellen, ob der Server noch läuft, ohne ihn abzpollen.<br>
    Hat dazu jemand eine Idee ?

  • #2
    Hallo,

    wenn ich mich nicht ganz täusche, dann wird ondisconnect ausgelöst, was aber nicht zuverlässig ist.
    Ich habe das so gelöst:
    Immer wenn der Client Daten empfängt, dann wird ein counter (z.B. 5 Sekunden) gesetzt. Innerhalb dieser Zeit muß der Server neue Daten geschickt haben. Bleibt das aus, schickt der Client noch mal eine Anfrage an den Server. Tritt hierbei ein Fehler auf, ist disconnected.
    Der Server achtet nun darauf, dass er, wenn er keine neue Daten verschickt alle 4 Sekunden eine Kontrollnachricht schickt.
    Das ist vielleicht nicht die beste Lösung, aber ganz praktikabel. Der Datenverkehr hält sich auch in grenzen, da nicht jedesmal Ping und Pong in 2 Richtungen geschickt werden müssen.

    Bye,

    Sebastia

    Comment


    • #3
      Hallo Sebastian,<br>
      das onDisconnect wird leider nicht ausgelöst. Die Sache mit dem Timer funktioniert auch nicht, da es bei unsere Konstellation durchaus wochenlang vorkommen kann, daß der Server dem Client keine Daten schickt.
      <br>
      Ich denke, daß ich wohl doch in einem bestimmten Zeitintervall ein Ping zum Server schicken muß.
      <br>
      Gruss
      <br>Frank Kneffe

      Comment


      • #4
        Hallo,

        wenn das der Fall ist, warum machst Du dann nicht den Server zum Client und baust immer wenn Daten gesendet werden sollen eine Verbindung auf ?

        Bye,

        Sebastia

        Comment


        • #5
          Das kann ich nicht machen.<br>
          Der Server überwacht eine Hardware von uns. Liegt ein Fehler vor, schickt er allen angeschlossenen Clients eine Nachricht, mit diesem Fehler. Dazu müssen die Clients natürlich aktiv sei

          Comment

          Working...
          X