Char-Buffer mit Zahlen > 127
-
Hallo Leute,
wie kann ich Zahlen die größer sind als 127 in mehreren Bytes eines Character-Buffers darstellen.
Ich möchte Daten via Socket senden. Dabei kann mann allerdings nur char senden und empfangen (Befehle: send(), recv()). Ich möchte aber Zahlen, die größer sind als 127 (auch größer als 256) in einem Buffer (z.B. char Buffer[4] ) darstellen und versenden.
Wie stell ich dass denn am besten an???
-
Das hängt vom benutzten Protokoll ab. Normalerweise wird über TCP/IP alles als Text verschickt, da binär (also so wie du willst) einen Haufen Portabilitätsprobleme hat. Andere Rechner im Netz haben vielleicht eine ganz andere Codierung für int, und müssen das erst aufwändig decodieren.
Wenn du's unbedingt machen willst (ohne Fehlerbehandlung):
// senden int i = 42; send(mysock, &i, sizeof i, 0); // empfangen int i; recv(mysock, &i, sizeof i, 0);
-
das ist doch nur eine frage der interpretation:
nimm zb ein int feld[32];
darin sind, wenn du so willst 32 * 4 byte ( char) enthalten, diesen kannst du doch genauso übertragen, wie ein char feld. du musst hierfür lediglich die adresse casten.
sprich --- char* send_pointer = (char*) &feld[0];
dann werden deine ints byteweise übertragen.
ok ?