Send wandelt in hex um
-
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);