htons和ntonhs輸出的結(jié)果是一樣的,并且我的機(jī)器是小端存儲(chǔ)的,htons并沒(méi)有把主機(jī)字節(jié)序轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)序。
1 回答

三國(guó)紛爭(zhēng)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果是腦筋急轉(zhuǎn)彎,我猜題主用0x0000或0x1111做的測(cè)試。
說(shuō)正經(jīng)的,你可能這樣測(cè)試:assert(htons(0x1234) == ntohs(0x1234)),
因?yàn)殡娔X是小端字節(jié)序,因此0x1234經(jīng)過(guò)htons變換后輸出0x3412,ntohs(0x1234)也輸出0x3412,讓樓主產(chǎn)生了“沒(méi)有進(jìn)行轉(zhuǎn)換”的錯(cuò)覺(jué)。
實(shí)際情況是,兩次轉(zhuǎn)換都非常成功,第一次將本機(jī)的0x1234轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)序0x3412,第二次將網(wǎng)絡(luò)序0x1234轉(zhuǎn)換成本機(jī)0x3412,因此結(jié)果相同。
添加回答
舉報(bào)
0/150
提交
取消