-> Hier kostenlos registrieren
Hallo zusammen ,
Folgende Situation:
Ich empfange auf einem Lean-CP ab und zu ein einzelnes UDP-Paket fester Länge (einige Bytes) mittels AG_RECV. AG_RECV schreibt die empfangenen Daten dann über den Eingangsparameter "RECV" in einen Datenbaustein.
Frage:
Stellt die Funktion AG_RECV sicher, dass die Daten im Zieldatenbaustein zu jeder Zeit konsistent sind? Oder wird der DB Byte für Byte aufgefüllt und der Zyklus läuft währenddessen weiter? Das hätte zur Folge, dass sich während eines recieve-Vorgangs alte und neue Daten um DB befinden.
Dann hätte ich noch eine Frage zum UD-Protokoll an sich:
Dass das UDP-Paket möglicherweise nicht ankommt ist mir klar, und stellt in meiner Anwendung auch kein Problem dar.
Aber gibt es bei UDP eine Checksumme, die die gesendeten Daten auf Fehler überprüft? Sollte ein fehlerhaftes Paket dann einfach verworfen werden, wäre mir das recht. Ich hab lieber gar kein Paket als ein fehlerhaftes.
Grüße
oid
Folgende Situation:
Ich empfange auf einem Lean-CP ab und zu ein einzelnes UDP-Paket fester Länge (einige Bytes) mittels AG_RECV. AG_RECV schreibt die empfangenen Daten dann über den Eingangsparameter "RECV" in einen Datenbaustein.
Frage:
Stellt die Funktion AG_RECV sicher, dass die Daten im Zieldatenbaustein zu jeder Zeit konsistent sind? Oder wird der DB Byte für Byte aufgefüllt und der Zyklus läuft währenddessen weiter? Das hätte zur Folge, dass sich während eines recieve-Vorgangs alte und neue Daten um DB befinden.
Dann hätte ich noch eine Frage zum UD-Protokoll an sich:
Dass das UDP-Paket möglicherweise nicht ankommt ist mir klar, und stellt in meiner Anwendung auch kein Problem dar.
Aber gibt es bei UDP eine Checksumme, die die gesendeten Daten auf Fehler überprüft? Sollte ein fehlerhaftes Paket dann einfach verworfen werden, wäre mir das recht. Ich hab lieber gar kein Paket als ein fehlerhaftes.
Grüße
oid
Zuletzt bearbeitet: