Also habe ich dich richtig verstanden. Verbindung von PC über TCP/IP zu nem controller kannste QDataStream vergessen?
Jein ...
Aber ich denke auf der Mikrokontroller-Seite hasst kein Qt, oder ? wenn nein, dann vergiss QDataStream.
Zur bytefolge:
wenn du ne andere Zielplattform hasst, also INTEL auf Motorola, oder generell Big Endian zu Little Endian kommen die werte alle Variablen, die du direkt in den socket schreibst, auf der anderen seite verkehrt rum raus.
wenn du alles nur 1 Byte weisse verschickst, dann passiert nix
Also wenn du nen int in nen Socket schreibst ala
QAbstractSocket::write(&MyInt,sizeof(int));
und auf der gegenseite wieder ausliest QAbstractSocket::read(&MyInt,sizeof(int));
sind die DInger verdreht ....
Wenn du mit QByteArray als zwischenpuffer arbeitest, verschiebt sich das problem natuerlich ins befuellen des Buffers ....
Um daten plattformunabhaengig zu uebertragen, ist fuer Netzwerkverbindungen eine generelle ByteOrder festgelegt.
Um Daten dahingehend zu convertieren stellt jede API funktionalitaet zur verfügung.
Posix und Winapi: htonl -> Host to Network Order für long
für andere Integer Typen usw gibts auch was ....
ASCII string sind eher unkritisch, da 1 byte ausrichtung.
Unicode, besonders mit wechselnder zeichenbreite -> horror, fuer netzwerk eigentlich ungeeignet.
Flieskomma zahlen, auch ungeeignet, weil es unterschiedliche formate gibt /geben kann.
Normal uebertraegt man fliesskomma zahlen dann ueber mathematische methoden wo sie auf ints + berechnungsvorschrift aufgeloest werden.
Ciao ...