HEX String senden ...



  • Hallo,

    ich suche eine möglichkeit einen kompletten HEX String zu senden.

    Also es soll ein HEX String in einem Edit eingegeben werden und der soll dann per Socket versendet werden - bis jetzt habe ich nur Zeichen verschickt - gibts da ne möglichkeit das direkt zu machen oder muss ich jedes HEX ocatal in ein Zeichen umwandeln und das dann wieder zusammen fügen ??



  • Hab jetzt folgendes Versucht :

    char ini1[2048] = "\x03\x00\x00\x16\x11\xe0\x00\x00\x00\x19\x00\xc1\x02\x02\x00\xc2\x02\x02\x02\xc0\x01\x09";
    char ini2[1024] = "\x03\x00\x00\x19\x02\xf0\x80\x32\x01\x00\x00\x02\x00\x00\x08\x00\x00\xf0\x00\x00\x01\x00\x01\x01\xe0";
    char ini3[1024] = "\x03\x00\x00\x27\x02\xf0\x80\x32\x07\x00\x00\x03\x00\x00\x08\x00\x0e\x00\x01\x12\x04\x11\x44\x02\x00\xff\x09\x00\x0a\x01\x00\x53\x37\x43\x48\x4e\x20\x20\x20";
    char ini4[1024] = "\x03\x00\x00\x21\x02\xf0\x80\x32\x07\x00\x00\x05\x00\x00\x08\x00\x08\x00\x01\x12\x04\x11\x44\x01\x00\xff\x09\x00\x04\x04\x24\x00\x00";
    char ini5[1024] = "\x03\x00\x00\x21\x02\xf0\x80\x32\x07\x00\x00\x06\x00\x00\x08\x00\x08\x00\x01\x12\x04\x11\x44\x01\x00\xff\x09\x00\x04\x01\x31\x00\x03";
    
    char send1[1024] = "\x03\x00\x00\x24\x02\xf0\x80\x32\x01\x00\x00\x24\x00\x00\x0e\x00\x05\x05\x01\x12\x0a\x10\x02\x00\x01\x00\x00\x83\x00\x00\x7b\x00\x04\x00\x08\xFF";
    
    ClientSocket1->Socket->SendText(ini1);
    ClientSocket1->Socket->SendText(ini2);
    ClientSocket1->Socket->SendText(ini3);
    ClientSocket1->Socket->SendText(ini4);
    ClientSocket1->Socket->SendText(ini5);
    ClientSocket1->Socket->SendText(send1);
    

    Funktioniert aber nicht da ja immer beim \x00 abgebrochen wird :-(((((

    Hoffe hier kann mir jemand jetzt helfen ...



  • Logischerweise funktioniert das nicht, ein char ist bei \0 zu Ende...
    Du mußt SendBuf() oder SendStream() verwenden um binäre Daten zu versenden.



  • hmmm je nur da stoss ich als anfänger mal wieder an ne sache wo ich mir schon seit stunden die zähne ausbeisse -lol- wie bekomme ich die zeichen in den buffer oder in den stream :-(( das man doch immer an so "kleinigkeiten" hängen bleibt 😉



  • Text gelöscht, um junix eine Chance zu geben... 😉



  • Kleine Step By Step Hilfe.

    Step 1: Was erwartet die Funktion "SendBuf"?



  • <-gelöscht da es sich auf gelöschten Text bezog-> *hehe* Danke Joe... (o;



  • Nach über 12 Stunden Problemen mit irgend welchen Befehlen fragst du das -fg-

    ok mit SendBuf scheint es einfacher zu gehen denn da müsste es so funktionieren:

    char buf[10] = "\x01\x00 .... ";
    ClientSocket1->Socket->SendBuf(buf, 10);
    

    Hatte mich auch mehr an der SendStream festgebissen 😉
    Wo wir schon dabei sind wie bekomme ich denn solche Daten in nen Stream ??



  • Aber eigentlich ging es mir ja auch noch darum das man die Daten auf der Oberfläche eingeben kann in der Art 0100C1... und das dann als Hex stream gesendet wird \x01\x00\xC1 .... anscheinend gibt es aber keine direkte funktion der StrToHex :-))



  • \x hilft nur zur Programmierzeit. Zur Laufzeit musst du die Zaheln selber umwandeln. Wobei das ja eigentlich ne Kleinigkeit ist.


Anmelden zum Antworten