htons和ntonhs輸出的結果是一樣的,并且我的機器是小端存儲的,htons并沒有把主機字節序轉換成網絡字節序。
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
如果是腦筋急轉彎,我猜題主用0x0000或0x1111做的測試。
說正經的,你可能這樣測試:assert(htons(0x1234) == ntohs(0x1234)),
因為電腦是小端字節序,因此0x1234經過htons變換后輸出0x3412,ntohs(0x1234)也輸出0x3412,讓樓主產生了“沒有進行轉換”的錯覺。
實際情況是,兩次轉換都非常成功,第一次將本機的0x1234轉換成網絡字節序0x3412,第二次將網絡序0x1234轉換成本機0x3412,因此結果相同。
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消