我想通過網絡傳輸數據,但我不想使用任何外部庫(標準C/C++是好的)。序列化字符串,整數和浮點數字網絡無庫
例如:
unsigned int x = 123;
char y[3] = {'h', 'i', '\0'};
float z = 1.23f;
我想這在
char xyz[11];
陣列。我需要無符號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 -
我如何在沒有外部庫的情況下完成此任務並最小化標準庫函數的使用?這不是我的課程,而是我學習的課程。
首先,你並沒有在任何地方實際聲明y變量。它是一個字符數組嗎?你知道這些陣列有多大,還是它們是動態的? – 2009-11-09 19:56:36
對不起,我顯然無法用雙引號中的字符串字面值初始化y,我解決了這個問題。它的大小是3個字節。 – wsd 2009-11-09 19:58:33