c++ char * to unsigned char
-
Hallo,
wie komme ich von:char a[256]; zu unsigned char b;
?
Also ich muss das:char buf[256]; rc = recv(s, buf, 256, 0);
Nach
typedef unsigned char byte; byte out = buf;
Wie bekomme ich das hin?
-
Deine Frage ist leicht unverständlich (insbesondere bei dem ersten Beispiel ist das eine ein Array und das andere nicht, wie soll das funktionieren), aber meine Glaskugel sagt mir du willst einen Cast:
unsigned char* out = reinterpret_cast<unsigned char*>(buf);
Hey, hier ist reinterpret_cast sogar standardkonform, yay!
-
Nicht ganz.
Ich Poste mal ein bisschen mehr Code und versuch ein bisschen besser zu erklären.BYTE bit; char buf[256]; recv(s, buf, 256, 0); cout << "BUF:" << buf << endl;
Ich möchte ja die Funktion recv aufrufen. Und dafür brauch ich ja ein Buffer(hier char buf[256];)
Nun möchte ich halt das ganze in einen vector von Typ BYTE haben damit ich das ganze wieder losschicken kann.Achja BYTE ist so festgelegt(typedef unsigned char BYTE;)
Hoffe man versteht besser was ich meine. Ist schon spät da ist es nicht mehr so mit schreiben
-
Ja, doch, das was ich oben geschrieben habe ist dann ziemlich genau das was du möchtest. Aber warum brauchst du eigentlich plötzlich ein unsigned char array, send() will auf Windows doch auch const char*?
-
Ich hab nicht wirklich viel Ahnung von so Sockets und Tcp-Packets aber ich brauch das für ein man in the middle Programm und ich will die Packete verändern und deswegen brauch ich glaub ich unsigned char damit das für das viel Programm auch richtig ist oder so.
Wie gesagt ich hab kein Plan davon
-
Ja aber du musst doch irgendwie wissen was du machen willst und warum du jetzt auf einmal unsigned char brauchst? Hä? Dir kam doch nicht auf einmal der Gedanke "boa, unsigned char wär jetzt aber geil!".
-
Genau das hatte ich aus einen Beitrag oder Forum wo jemand gesagt hat das die Daten vom Programm Binär erfasst werden und nicht als String...
-
Versteht jemand den Satz?
-
In einem Beitrag in einem Forum stand, dass die Daten nicht als String sondern binär aufgefasst werden.
Oder so etwas in der Richtung
-
Aus was denkst du dann besteht ein string? Ob etwas Text ist oder "nur" Binärdaten ist primär Sache der Interpretation. Abgesehen davon wird in C++ eher der Typ char für Zeichen genutzt ("Hello" -> const char[6], 'A' -> const char). unsigned char hilft dir da wenig.
-
Ok also einfach const char bei recv und send benutzen richtig?
Macht das denn Zeilprogramm nichts aus?
Wie mach ich das denn das ich kein Smiliey oder so sondern ein hex Wert also 0x00 auf der Konsole bekomme?
-
Zeilprogramm?
-
Das Programm halt wovon ich die Packete abfangen will.