PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : recv daten leserlich darstellen



newc0mer
18-01-2007, 14:09
peer = recv(client, message, sizeof(message), 0);
cout << "\t[+]Received msg: " << &message << endl;

Output:
Message: 0xbffff4f0

Wie kann ich das nun so darstellen, dass man auch lesen kann, was empfangen wurde?
Ich glaube derzeit befindet in message die nachricht in der sogn. network byte order. Wie kann ich das "convertieren"/fürs auge leserlich machen?

daten via SO_STREAM emfangen.

Vincent Vega
19-01-2007, 09:31
Was Du da ausgibst, ist die Adresse der Variablen message. Wenn Du den Inhalt ausgeben willst, dann solltest Du einfach cout << message << endl verwenden (oder halt printf).

Um Network/Host Byte Order umzurechnen, gibt es htonl(3) et al.

Wenn Du das ganze "schön" ausgeben willst, musst Du eine Struktur für message definieren, also



struct message_s {
int foo;
char bar[123];
};

struct message_s message;


Die Felder der Struktur sollten natürlich Deinem Protokoll bzw. dem Aufbau Deiner Pakete entsprechen. Anschließend musst Du noch den <<-Operator für struct message_s überladen. Wie das geht, lies bitte in der C++ Doku Deiner Wahl nach.