網路位元組序

網路位元組序

網路位元組序轉化為主機位元組序時,一定要注意是否需要轉換。網路位元組序是確定的。 網路位元組順序是TCP/IP中規定好的一種數據表示格式,它與具體的CPU類型、作業系統等無關,從而可以保證數據在不同主機之間傳輸時能夠被正確解釋。網路位元組順序採用big endian(大端)排序方式。

轉換函式

為了進行轉換 bsd socket提供了轉換的函式 有下面四個
htons把unsigned short類型從主機序轉換到網路序
htonl 把unsigned long類型從主機序轉換到網路序
ntohs 把unsigned short類型從網路序轉換到主機序
ntohl 把unsigned long類型從網路序轉換到主機序
在使用little endian的系統中 這些函式會把位元組序進行轉換
在使用big endian類型的系統中 這些函式會定義成空宏
同樣 在網路程式開發時 或是跨平台開發時 也應該注意保證只用一種位元組序 不然兩方的解釋不一樣就會產生bug.

注意事項

1、網路與主機位元組轉換函式:htons ntohs htonl ntohl (s 就是short l是long h是host n是network)
2、不同的CPU上運行不同的作業系統,位元組序也是不同的,參見下表。
處理器 作業系統 位元組排序
Alpha 全部 Little endian
HP-PA NT Little endian
HP-PA UNIX Big endian
Intelx86 全部 Little endian

相關詞條

相關搜尋

熱門詞條

聯絡我們