Chcę przesłać dane przez sieć, ale nie chcę używać żadnych bibliotek zagranicznych (Standard C/C++ jest ok).Serializuj łańcuchy znaków, int i float do tablic znaków w celu tworzenia sieci BEZ BIBLIOTEK
na przykład:
unsigned int x = 123;
char y[3] = {'h', 'i', '\0'};
float z = 1.23f;
chcę to w
char xyz[11];
tablicy.
Uwaga: Aby przesłać go przez sieć, potrzebuję zamówienia Bajt sieci dla niepodpisanego int (funkcja htonl), to muszę jakoś serializować float, aby był w formularzu IEEE 754 (tam jest wiele funkcji w Internecie), i wiem to.
Jak mogę je wprowadzić do tablicy Xyz, ładnie ustawionej w linii koniec do końca, więc mogę użyć tego jako bufora dla funkcji socket + send()? Oczywiście mam funkcje odwróconych (ntohl i wsteczny IEEE 754), aby się ich pozbyć, ale muszę technikę tam też, korzystnie takie same ...
To byłoby coś takiego:
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 -
Jak mogę to zrobić bez zewnętrznych bibliotek i minimalnego wykorzystania standardowych funkcji bibliotecznych? Nie jest to tak ważne dla mojego programu, jak i dla mnie.
Po pierwsze, w rzeczywistości nie zadeklarowano żadnej zmiennej y. Czy to tablica znaków? Czy wiesz, jak duże są te tablice, czy są dynamiczne? –
Przykro mi, oczywiście nie mogę zainicjować y z literałem łańcuchowym w podwójnych cudzysłowach, naprawiłem to. Ma 3 bajty. – wsd