【Linux網路程式設計】位元組序

杨谖之發表於2024-08-28

【Linux網路程式設計】位元組序

位元組序

位元組序就是位元組在記憶體中儲存的順序,如32位整數0x01234567,在記憶體中儲存時,有如下兩種順序:

image

大端序將數值的高位儲存在低位地址中,小端序則相反。

網路位元組序

網路中傳輸資料均採用大端序

Linux位元組序轉換函式

#include <netinet/in.h> 中提供了 4 個函式:

unsigned long int htonl(unsigned long int hostlong);    // 主機ip->網路ip
unsigned short int htons(unsigned short int hostshort); // 主機port->網路port
unsigned long int ntohl(unsigned long int netlong);     // 網路ip->主機ip
unsigned short int ntohs(unsigned long int netshort);   // 網路port->主機port

其含義很明確,如 "htol" 表示 "host to network long"。一般長整型函式用於轉換 ip 地址,短整型函式用來轉換 port。

相關文章