Сериализация строк, целочисленных значений и чисел с плавающей точкой для символьных массивов для работы в сети без библиотек
Я хочу передавать данные по сети, но я не хочу использовать какие-либо сторонние библиотеки (стандарт C / C ++ в порядке).
например:
unsigned int x = 123;
char y[3] = {'h', 'i', '\0'};
float z = 1.23f;
Я хочу это в
char xyz[11];
массив.
Примечание: чтобы передать его по сети, мне нужен сетевой порядок байтов для беззнакового целого (функция htonl), затем мне нужно как-то сериализовать число с плавающей запятой, чтобы оно было в форме IEEE 754 (в Интернете есть много функций), и я это знаю.
Как я могу получить их в массив xyz-Array, аккуратно выстроенный в ряд, чтобы я мог использовать это как буфер для моей функции socket + send ()? Очевидно, у меня есть обратные функции (ntohl, и обратный IEEE 754), чтобы получить их, но там мне тоже нужна техника, желательно такая же ...
Это было бы что-то вроде этого:
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 -
Как я могу сделать это без внешних библиотек и минимального использования стандартных библиотечных функций? Это не столько для моей программы, сколько для меня, чтобы учиться.