有主機(jī)序轉(zhuǎn)網(wǎng)絡(luò)序,就有網(wǎng)絡(luò)序轉(zhuǎn)主機(jī)序,分別是ntohl和ntohs函數(shù),接下來為大家講解這兩個(gè)函數(shù)。
1.ntohl函數(shù)
函數(shù)功能:
將一個(gè)無符號(hào)短整型數(shù)從網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成主機(jī)字節(jié)順序。這個(gè)函數(shù)與htons原理相同,不過是htos是主機(jī)序到網(wǎng)絡(luò)序,而ntohs是網(wǎng)絡(luò)序到主機(jī)序。
頭文件:
#include <winsock2.h>
函數(shù)原型:
uint16_t ntohs(uint16_t netshort);
返回值類型:
整型
返回值:
返回一個(gè)主機(jī)字節(jié)順序表達(dá)的數(shù)。
參數(shù)說明:
其中netshort一個(gè)以網(wǎng)絡(luò)字節(jié)順序表達(dá)的16位數(shù),ntohs中的h表示host意思是主機(jī)地址,to表示to意思是去往,n表示net意思是網(wǎng)絡(luò),s表示signed long意思是無符號(hào)的短整型(32位的系統(tǒng)是2字節(jié))。
調(diào)用ntohs函數(shù)代碼舉例;
ntohs(5200);
2.ntohl函數(shù)
函數(shù)功能:
將一個(gè)無符號(hào)長(zhǎng)整型從網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)換成主機(jī)字節(jié)順序。這個(gè)函數(shù)與htonl原理相同,不過是htol是主機(jī)序到網(wǎng)絡(luò)序,而ntohl是網(wǎng)絡(luò)序到主機(jī)序。
頭文件:
#include <winsock2.h>
函數(shù)原型:
uint16_t ntohs(uint16_t netlong);
返回值類型:
整型
返回值:
返回一個(gè)主機(jī)字節(jié)順序表達(dá)的數(shù)。
參數(shù)說明:
其中netlong一個(gè)以網(wǎng)絡(luò)字節(jié)順序表達(dá)的32位數(shù),ntohs中的h表示host意思是主機(jī)地址,to表示to意思是去往,n表示net意思是網(wǎng)絡(luò),s表示signed long意思是無符號(hào)的短整型(32位的系統(tǒng)是2字節(jié))。
調(diào)用ntohl函數(shù)代碼舉例;
ntohl( 0x403214);
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程