1. 程式人生 > >關於htons和htonl

關於htons和htonl

#include <arpa/inet.h> 
uint16_t htons(uint16_t hostshort); 
htons的功能:
                        將一個無符號短整型數值轉換為網路位元組序,即大端模式(big-endian)  引數u_short hostshort: 16位無符號整數 返回值:
               TCP / IP網路位元組順序.
htons 是把你機器上的整數轉換成“網路位元組序”, 網路位元組序是 big-endian,也就是整數的高位位元組存放在記憶體的低地址處。 而我們常用的 x86 CPU (intel, AMD) 電腦是 little-endian,也就是整數的低位位元組放在記憶體的低位元組處。
舉個例子:
                假定你的port是  0x1234,  在網路位元組序裡 這個port放到記憶體中就應該顯示成  addr addr+1  0x12 0x34  而在x86電腦上,0x1234放到記憶體中實際是:  addr addr+1  0x34 0x12 htons 的用處就是把實際記憶體中的整數存放方式調整成“網路位元組序”的方式。