Netzwerkverbindung noch aktiv?



  • Hi,

    ich habe hier eine Netzwerkverbindung zwischen zwei nichtblockierenden Sockets. Wenn ich auf einer Seite versuche etwas zu lesen ohne dass die andere was gesendet hat, so bekomme ich das mit einem Fehler WSAEWOULDBLOCK bzw. EAGAIN / EINPROGRESS gemeldet.

    Nur: wie erfahre ich, ob die Gegenseite nicht mehr senden kann weil sie die Verbindung bereits geschlossen hat? An Hand dessen dass keine Daten mehr kommen kann ich es nicht feststellen (und eine Lösung auf Protokollebene bei der ich einfach Nachfrage ob die Gegenseite noch am Leben ist, ist nicht realisierber).

    NWorker





  • Nur schade dass SO_KEEPALIVE mein Problem nicht löst und meine Frage nicht beantwortet: damit wird auf TCP-Protokollebene automatisch und ohne mein Zutun überprüft ob eine Verbindung noch lebt. Meine Kernfrage nach wie vor: wie erfahre ich ob die Verbindung nun noch besteht oder nicht?

    NWorker



  • Das wars an Antworten? Ein Schnellschuss der nicht mal richtig zur Frage passt und sonst nix? Kommt Leute, so schlecht kann das Forum doch gar nicht sein...



  • NWorker schrieb:

    Das wars an Antworten? Ein Schnellschuss der nicht mal richtig zur Frage passt und sonst nix? Kommt Leute, so schlecht kann das Forum doch gar nicht sein...

    Wieso machst du andere für deine Unfähigkeit verantwortlich?

    Du bist übrigens im ANSI C-Forum. Nur weil du rein zufällig Sockets in C programmierst, gehört die Frage noch lange nicht hier rein.

    Noch dazu kommst du mit solchen Sprüchen äußerst unsympathisch rüber, vielleicht will dir deshalb keiner antworten.



  • War das nicht ENOTCONN?



  • NWorker schrieb:

    Das wars an Antworten? Ein Schnellschuss der nicht mal richtig zur Frage passt und sonst nix? Kommt Leute, so schlecht kann das Forum doch gar nicht sein...

    Gut gebrüllt Kleiner. Aber warum stellst du Fragen die nichts mit ANSI C zu tun haben in ANSI C? 🙄



  • Dieser Thread wurde von Moderator/in TactX aus dem Forum ANSI C in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • pock schrieb:

    Noch dazu kommst du mit solchen Sprüchen äußerst unsympathisch rüber, vielleicht will dir deshalb keiner antworten.

    Was soll der aggressive Ton? Soll ich niederknien und den Boden vor "ten" küssen nur weil er mir geantwortet hat? Und das selbst wenn seine Antwort nicht zu gebrauchen und nur knapp über dem Niveau eines "Erster"-Postings war?

    Ich bin zum ersten mal hier in diesem Forum, aber der Umgangston hier scheint ja echt zum abgewöhnen zu sein...

    NWorker



  • rüdiger schrieb:

    War das nicht ENOTCONN?

    Das klingt gut - Danke ich werds mal überprüfen!

    NWorker



  • Gut gebrüllt Kleiner. Aber warum stellst du Fragen die nichts mit ANSI C zu tun haben in ANSI C?

    Die Antwort dazu würde mich auch sehr interessieren ...



  • NWorker schrieb:

    ...seine Antwort nicht zu gebrauchen und nur knapp über dem Niveau eines "Erster"-Postings war?

    mist, du hast mich voll durchschaut 😞



  • zum thema keepalive.

    Bei uns im Projekt wurde das mit einen eigenen Keepalive gelöst. Der Client hat aller gewissen Zeitperioden ein bestimmtes Erkennungsbyte zu senden ansonsten gilt die Verbindung als nicht mehr Vorhanden und wird Zwangsgeschlossen.



  • NWorker schrieb:

    Das wars an Antworten? Ein Schnellschuss der nicht mal richtig zur Frage passt und sonst nix? Kommt Leute, so schlecht kann das Forum doch gar nicht sein...

    NWorker schrieb:

    ...
    Was soll der aggressive Ton? ...

    🤡 🤡 🤡

    Machst Du das sonst auch so ? Dem Passanten erst in die Eier treten und dann um einen Gefallen bitten ? ... und anschließend schnauzen, er solle gefälligst freundlich bleiben ? 👍

    Warum sollte hier Deine Dränge- und Rüpelei auf positivere Resonanz stoßen als im real life ?
    Lustige Leute gibt's !!

    Gruß,

    Simon2.


Anmelden zum Antworten