Send wandelt in hex um
-
Hallo,
Ich habe angefangen mich mit Sockets zu beschäftigen und bin dann direkt auf vollgendes gestoßen.
wenn ich was mit send schicke wandelt mir send den Text in hex um, allerdings hab ich den hexcode schon zur hand und will diesen senden ohne daß das noch mal umgwandelt wird.string Message = "04 00 49 6e 66 6f" int status = ::send( m_sock, Message.c_str(), Message.size(), flag );
gibts eine möglichkeit oder eine alternative zu send das nich nochmal in hex umgewandelt wird?
Danke schonmal.
-
send wandelt nichts um. Woran meinst Du denn, eine Umwandlung zu sehen?
-
Wenn ich was mit send weg schicke kann ich, wenn ich mit Wireshark den entsprechenden port sniffe den hexcode sehen.
Den habe ich allerdings schon und möchte den den ich hab wegschicken, und nicht das es erst noch verarbeitet wird.Ich hoffe ich kann ungefähr erklären worauf ich hinaus will.
-
Dann stell Dein Wireshark so ein, dass es Dir die Repräsentation anzeigt, die Du gerne hättest.
-
string s = "\x04\x00";
-
Danke,
genau das hab ich gesucht.
-
Das glaube ich nicht.
-
Warum nicht?
Komischerweise funtzt das aba mit der Art.
bool Socket::send ( const string s ) const { int flag = 0; const string Message = "\x49\x6e\x66\x6f" ; int status = ::send( m_sock, Message.c_str(), Message.size(), flag ); if ( status == -1 ) return false; else return true; }
Kommt auf der anderen Stelle "info" an.
Wenn du ne andere möglichkeit hast, bitte bin grade am versuch mich da rein zu Arbeiten und über Tips und Tricks sehr erhaben.
-
Was ist daran jetzt komisch? Das ist zwar was komplett anderes, als Du im ersten Post wolltest, aber komisch ist daran nichts. Du könntest auch einfach const string Message = "info" schreiben.
-
Das ist richtig, aber was mache ich wenn ich sowas habe?
const string Message = "\x04\x00\x49\x6e\x66\x6f";
\x04 und \x00 kann man meines wissens nich einfach mal so daher schreiben oder?
-
const string Message = "\x04\x00Info";
Das hat aber mit der Beschreibung aus deinem ersten Post nichts zu tun.
send hat (und macht es weiterhin) genau das gesendet was du übergeben hast.Die Umwandlung hat wireshark gemacht
-
Soweit hab ichs begriffen,
sry für meine blöde Beschreibung.Ich danke trotzdem noch mal für eure Hilfe.
Ein Problem tut sich aba noch auf, wenn ich zB.:"\x04\x00\x53..."
versuche zu senden, dann bricht es bei \x00 ab und sendet nur 04 kann mir das evtl. jemand erklären?
Wäre nett wenn.
-
'\x00' oder '\0' oder 0 (alles das selbe) ist die Endekennung für Strings.
Du darfst halt nicht mit Strings arbeiten sondern musst andere Funktionen nutzen.
strlen(Message) ergibt 1.
sizeof(Message) ergibt 7. (6 Zeichen plus abschließende 0)Oder du kannst für das Message.size() einen anderen Wert einsetzen.
-
probier mal
const string Message("\x04\x00Info", 6);
-
oder falls das nicht klappt
string Message;
Message.append("\x04\x00Info", 6);