big endian: 高位字節放在 低位內存中
little endian 高位字節放在 高位內存中
例子:如果我們將0x1234abcd寫入到以0x0000開始的內存中,則結果爲
big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x23 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
網絡字節順序採用big endian排序方式。即高位數據放在低位內存中 。
主機字節序依賴系統實現的不同而不同,但是網絡字節序是獨立於平臺的。因此,從網絡中接受的網絡數據必須經過轉化爲符合主機字節序,才能正確的賦予語義。
網絡與主機字節轉換函數:
htons ntohs htonl ntohl
(s 是short l是long h是host n是network)
參考:http://todd-liu.javaeye.com/blog/697842