uint16_thtons(uint16_thostshort);htons的功能:將一個(gè)無符號(hào)短整型數(shù)值轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序,即大端模式(big-endian)參數(shù)u_shorthostshort:16位無符號(hào)整數(shù)返回值:TCP/IP網(wǎng)絡(luò)字節(jié)順序.htons是把你機(jī)器上的" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

關(guān)于htons和htonl

系統(tǒng) 4923 0

我開始的時(shí)候認(rèn)為htons和htonl可以只用htonl代替但是后來發(fā)現(xiàn)這個(gè)是錯(cuò)誤,會(huì)導(dǎo)致服務(wù)器端和客戶端連接不上。

下面就讓我們看看他們:

?

htons

#include <arpa/inet.h>
uint16_t htons(uint16_t hostshort);
htons的功能:
??????????????????????? 將一個(gè)無符號(hào)短整型數(shù)值轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序,即大端模式(big-endian) 參數(shù)u_short hostshort: 16位無符號(hào)整數(shù) 返回值:
?????????????? TCP / IP網(wǎng)絡(luò)字節(jié)順序.
htons 是把你機(jī)器上的整數(shù)轉(zhuǎn)換成“網(wǎng)絡(luò)字節(jié)序”, 網(wǎng)絡(luò)字節(jié)序是 big-endian,也就是整數(shù)的高位字節(jié)存放在內(nèi)存的低地址處。 而我們常用的 x86 CPU (intel, AMD) 電腦是 little-endian,也就是整數(shù)的低位字節(jié)放在內(nèi)存的低字節(jié)處。
舉個(gè)例子:
??????????????? 假定你的port是 0x1234, 在網(wǎng)絡(luò)字節(jié)序里 這個(gè)port放到內(nèi)存中就應(yīng)該顯示成 addr addr+1 0x12 0x34 而在x86電腦上,0x1234放到內(nèi)存中實(shí)際是: addr addr+1 0x34 0x12 htons 的用處就是把實(shí)際內(nèi)存中的整數(shù)存放方式調(diào)整成“網(wǎng)絡(luò)字節(jié)序”的方式。


htonl()

簡(jiǎn)述: 將主機(jī)的無符號(hào)長整形數(shù)轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
hostlong:主機(jī)字節(jié)順序表達(dá)的32位數(shù)。
注釋:
? 本 函數(shù) 將一個(gè)32位數(shù)從主機(jī)字節(jié)順序轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
返回值:
????? htonl()返回一個(gè)網(wǎng)絡(luò)字節(jié)順序的值。
參見:
??? htons() ,? ntohl() ,? ntohs() .


在Linux系統(tǒng)下:
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
相關(guān)函數(shù): uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 網(wǎng)際協(xié)議在處理這些多字節(jié)整數(shù)時(shí),使用大端字節(jié)序。 在主機(jī)本身就使用大端字節(jié)序時(shí),這些函數(shù)通常被定義為空宏。

?

?

?

關(guān)于htons和htonl


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 马山县| 新巴尔虎左旗| 永新县| 汉寿县| 慈溪市| 剑川县| 二连浩特市| 沂源县| 大悟县| 高陵县| 香港 | 汨罗市| 喀什市| 临洮县| 庆云县| 宁国市| 略阳县| 甘洛县| 宁陕县| 凌海市| 永康市| 都江堰市| 马关县| 武川县| 黑山县| 棋牌| 萝北县| 长兴县| 进贤县| 双柏县| 奉节县| 镇平县| 大连市| 平山县| 叶城县| 双峰县| 石楼县| 临颍县| 青海省| 沙坪坝区| 常州市|