int Werte in char array speichern



  • Hallo zusammen,
    ich weiss, dass es eine absolute Anfänger Frage ist, aber ich stehe mir gerade selbst im Weg. Sprich ich bekomme es einfach nicht hin.
    Ich habe einen TCP Socket. Um die Daten sicher auszutauschen, möchte ich folgendes realisieren.
    ICh möchte folgenden char array über send() an den server schicken.
    0xFFFE 0000 0001 0002 0003 CRC16
    Kennung Laenge Daten 1-3 CRC16 über die Daten 1-3

    Es handelt sich um lauter int Werte. Wie bekomme ich diese nun in einen char array welchen ich mit send() schicken kann???

    Danke schonmal für Eure Hilfe.

    Grüße
    tYREL



  • wenn deine ints in nem array vorliegen ist wahrscheinlich memcpy der schnellste und einfachste weg. einmal hin, einmal her.



  • hmm, liegen zwar nicht in einem int array, aber kann ich ja entsprechend so anlegen, das ist kein problem. gute idee. vielen dank. 🙂



  • Die Frage ist jetzt, ob die Daten als String oder aber binär versendet werden sollen?

    Du kannst die Daten nämlich auch einzeln (oder in einem int-Array) binär mit send() verschicken:

    int x;
    int a[10];
    send(socket, (char *)&x, sizeof(x)); // ein int binär versenden
    send(socket, (char *)a, sizeof(a)); // das ganze int-array binär versenden
    

    Der cast (char 😉 dient nur der Eleminierung der Warnung, aber es bedeutet nicht zwangsläufig, daß nur ein char-Zeiger oder char-Array als Parameter übergeben werden muß.

    Entsprechend mußt du dann die Funktion recv() auf der Gegenseite aufrufen.



  • Cool. Danke. Die Art der Daten ist egal (char oder int) ich kann ja die Gegenstelle, wie Du ja richtigerweise sagt, entsprechend umstellen.
    Dann werde ich heute Abend noch ein paar Versuche machen. Vielen Dank für den Tipp. 🙂 😃


Anmelden zum Antworten