Quiero transmitir datos a través de la red, pero no quiero utilizar ninguna biblioteca extranjera (el estándar C/C++ está bien).Serializar cadenas, ints y flotantes a matrices de caracteres para redes SIN BIBLIOTECAS
por ejemplo:
unsigned int x = 123;
char y[3] = {'h', 'i', '\0'};
float z = 1.23f;
Quiero que esta en una matriz
char xyz[11];
. Nota: Para transmitirlo a través de la red, necesito el pedido de bytes de red para la función sin firmar (htonl), entonces de alguna manera debo serializar el flotador en forma IEEE 754 (hay muchas funciones en Internet), y lo se.
¿Cómo los llego al xyz-Array, perfectamente alineado de extremo a extremo, para que pueda usar esto como un buffer para mi función socket + send()? Es evidente que tengo funciones inversas (ntohl, y una inversa IEEE 754) para sacarlos pero necesito una técnica allí también, preferiblemente el mismo ...
que sería algo como esto:
xyz in binary: 00000000 0000000 00000000 01111011 | 01101000 | 01101001 | 00000000 | 00111111 10011101 01110000 10100100 - big endian repr. of u. int 123 - | - 'h' - | - 'i' - | - '\0' - | - IEEE 754 repr of float 1.23 -
¿Cómo puedo lograr esto sin bibliotecas externas y un uso mínimo de las funciones estándar de la biblioteca? Esto no es tanto para mi programa como para mí para aprender de él.
En primer lugar, no ha declarado la variable y en ningún lugar. ¿Es una matriz de caracteres? ¿Sabes qué tan grandes son estas matrices o son dinámicas? –
Lo siento, obviamente no puedo inicializar y con un literal de cadena entre comillas dobles, lo arreglé. Tiene 3 bytes de tamaño. – wsd