CAsyncsocket Kabel ziehen



  • Kurze Frage ist es bei einem CAsyncSocket möglich mitzubekommen, wenn ich das Kabel vom Netzwerkanschluß (an dem aktive Verbindungen hänge) mitzubekommen, oder muss ich mittels Timer alle paar sekunden prüfen ob noch eine Verbinung besteht? Und wenn ja wie?

    OnClose() ist es mal nicht.

    LG



  • kommt drauf an ob deine Verbindung TCP/IP oder UTP ist. Bei TCP bekommste doch den Verbindungsverlust mit weil das das Protokoll für dich erledigt, bei UTP mußte dich halt selbst drum kümmern, aber mußte je eh Handshake machen, da es ja nicht sicher ob deine Daten auch ankommen



  • Ist ne TCP Verbinung aber er springt halt nicht ins OnClose ergenis rein wenn ich das Kabel ziehe. Wenn ich das Programm abschieße(Taskmanager) reagiert er darauf aber einwandfrei.



  • du musst noch einen timeout einprogrammieren. z.b. 1 minute nichts empfangen => verbindung schließen



  • Wenn du das Kabel abziehst, dann ist deswegen ja nicht gleich die Verbindung weg.
    Wenn du das Kabel danach schnell genug wieder reinsteckst, dann ist garnix passiert, und alles geht ganz normal weiter.

    Probier's aus wenn du mir nicht glaubst 🙂

    Wenn du recht schnell mitbekommen willst, dass die Verbindung "stockt" und evtl. tot sein könnte, dann musst du wie der "..." schreibt selbst ein Timeout irgendwo einbauen.

    Dazu musst du dann natürlich ggf. immer Pakete hin-und-her schicken - denn sonst könnte es ja "ganz normal" vorkommen, dass mal für ein paar Sekunden (Minuten, Stunden) nix ankommt. Oder auch nicht -- weiss ja nicht um was für eine Anwendung es sich bei dir handelt.



  • hustbaer schrieb:

    Wenn du das Kabel abziehst, dann ist deswegen ja nicht gleich die Verbindung weg.
    Wenn du das Kabel danach schnell genug wieder reinsteckst, dann ist garnix passiert, und alles geht ganz normal weiter.

    Probier's aus wenn du mir nicht glaubst 🙂

    Wenn du recht schnell mitbekommen willst, dass die Verbindung "stockt" und evtl. tot sein könnte, dann musst du wie der "..." schreibt selbst ein Timeout irgendwo einbauen.

    Dazu musst du dann natürlich ggf. immer Pakete hin-und-her schicken - denn sonst könnte es ja "ganz normal" vorkommen, dass mal für ein paar Sekunden (Minuten, Stunden) nix ankommt. Oder auch nicht -- weiss ja nicht um was für eine Anwendung es sich bei dir handelt.

    Danke das mit dem rein rausziehen war mir schon klar. Werde es wohl dann doch mittels Timer porbieren der im bestimmten Zeitintervall überprüft ob die clients noch verfügbar sind.



  • sirchillalot schrieb:

    hustbaer schrieb:

    Wenn du das Kabel abziehst, dann ist deswegen ja nicht gleich die Verbindung weg.
    Wenn du das Kabel danach schnell genug wieder reinsteckst, dann ist garnix passiert, und alles geht ganz normal weiter.

    ...

    Danke das mit dem rein rausziehen war mir schon klar. ...

    Wenn dir das klar war, wie kannst du dann jemals auf die Idee gekommen sein, dass der OnClose Event getriggert werden könnte in dem Fall?



  • jetzt wo du es sagst hab ich wohl nicht recht nachgedacht. War gestern ein langer Tag 😞



  • Hihi.
    Macht ja nix.


Anmelden zum Antworten