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