TCPIP Socket Sendebestätigung



  • Hallo,
    ich habe ein einfaches Socket für eine TCPIP Verbindung aufgebaut.
    im GOOD-Case funktioniert auch alles.

    doch wie kann ich sicherstellen, dass mit send() die Daten auch wirklich abgeschickt wurden.

    send() liefert immer OK , auch wenn die Verbindung bereits physikalisch getränt wurde.

    d.h.
    - Verbindung physikalisch aufbauen
    - Verbindung logisch aufbauen
    -Verbindung physikalisch tränen
    - send() ausführen
    OK wird geliefert

    wie kann geprüft werden ob die Daten auch wirklich abgeshcickt wurden?

    Danke



  • Naja wenn ich mich recht erinnere gibt doch send() die anzahl der bytes die es gesendet hat 😕
    Dann kannst ja einfach überprüfen ob der rückgabewert mit der größe der daten übereinstimmt.
    Alternativ kannst auch dein Protokoll so erweitern das der server bzw. client zurück schickt wie viel er empfangen hat. Das ist eigentlich die sicherste methode.

    mfg tobZel



  • Ja das stimmt, send() gibt die Anzahl der Bytes, die an eine Low-Level-Ebene zum Senden übergeben wurde. Ob die Low-Level-Ebene die Daten sendet, das weist send() nicht. Steht auch in der Beschreibung von send() so.
    Das Protokoll kann man erweitern, aber das ist eine schlechte Lösung.
    Low-Level-Ebene weist ob und wann die Daten abgeschickt werden und meldet das auch, die Frage ist nur wie kann mein Programm das erfahren?


Anmelden zum Antworten