Binaerdaten/Rohdaten und Netzwerkpaket



  • Hallo,
    ich habe ein Problem das wahrscheinlich ziemlich trivial ist, finde aber im Moment selber keine Lösung.
    Ich habe in meinem Lan mit einem Paketsniffer des Inhalt eines Datenpaketes analysiert (einen Steuerbefehl für eine Wächterkarte), nun möchte ich dieses Paket reproduzieren (nur den Datenteil natürlich). Wie schaffe ich es die Rohdaten ins Netz zu schicken? Wahrscheinlich muss die Frage eher heissen: Welchen Datentyp muss meine Variable haben, in der die per send() zu versendenden Daten stecken?

    Falls der Begriff Rohdaten falsch sein sollte, ich meine soetwas:

    69 63 68 20 6e 65 75 20 67 65 73
    

    Das sind nun grade alles Ascii-Zeichen, das trifft aber nicht auf das gesamte Paket zu.

    Ich der Hoffnung sich halbwegs verständlich ausgedrückt zu haben,
    Simon



  • Das sind letztendlich alles nur Einsen und Nullen, es kommt nur auf die Darstellung an. Für Daten welcher Art auch immer nimmt man normalerweise byte (char).
    69(16) kann auch als 105(10) oder 1101001(2) dargestellt werden. Im Speicher ist es das gleiche.



  • Das ist mir soweit klar, ich könnte theoretisch auch einfach 0x davor schreiben und es 1:1 übernehmen. Mein Problem dabei ist nur: Ich habe 103 Byte Daten, das sprengt mir jeden long int um Längen 😞



  • mach's so:

    unsigned char daten[] = {0x69, 0x63, 0x68, .....};
    

    den rest musste noch mit den anderen 100 bytes auffüllen.
    dann kannste es z.b. senden mit

    send (..., daten, sizeof(daten), ...);
    


  • Dankeschön, das sieht nach einer brauchbaren Lösung aus 🙂
    Ich werds morgen ausprobieren.


Anmelden zum Antworten