htons(), ntohl(), ntohs(),htons():
在Linux和Windows網路編程時需要用到htons,htonl函式,用來將主機位元組順序轉換為網路位元組順序;ntohl(), ntohs()用來將網路位元組順序轉換為主機位元組順序;
網路位元組順序與本地位元組順序之間互相轉換函式:
htonl()–“Host to Network Long”
ntohl()–“Network to Host Long”
htons()–“Host to Network Short”
ntohs()–“Network to Host Short”
inet_add(),inet_ntoa() :
inet_addr的功能是將一個ip地址字串轉換成一個整數值,一般的IP地址串格式為:'a.b.c.d’分成四段;
inet_ntoa將in_addr型別轉換為字串;
unsigned long inet_addr(const char* cp); //cp代表點分十進制的IP地址,如1.2.3.4
char* inet_ntoa(struct in_addr in); //in_addr是SOCKADDR_IN成員,其代表IP地址,
大小端法
不同的CPU有不同的位元組序型別 這些位元組序是指整數在記憶體中保存的順序 這個叫做主機序
最常見的有兩種
1. Little endian:將低序位元組存盤在起始地址
2. Big endian:將高序位元組存盤在起始地址
舉例: 我們將0x1234abcd寫入到以0x0000開始的記憶體中,則結果為
地址 big-endian little-endian
0x0000 0x12 0xcd
0x0001 0x23 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12
網路位元組順序是TCP/IP中規定好的一種資料表示格式,它與具體的CPU型別、作業系統等無關,從而可以保證資料在不同主機之間傳輸時能夠被正確解釋,網路位元組順序采用big endian排序方式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286707.html
標籤:其他
下一篇:實驗四 離散傅立葉變換的應用
