主機位元組序與網路位元組序轉換
阿新 • • 發佈:2018-12-20
小端位元組序:即一個整數的高位位元組存放在記憶體中的高位地址處,低位位元組存放在記憶體中的低位地址處 大端位元組序:與小端位元組序剛好相反
現代的pc多采用小端位元組序,而java虛擬機器採用大端位元組序,網路採用的也是大端位元組序 所以在網路傳輸中通常我們需要進行位元組序的轉換,否則接受網路資料的程序將不知道如何進行資料解析
linux系統環境下的c中:
#include<netinet/in.h> //將長整形轉換為網路位元組序 unsigned long int htonl(unsigned long int hostlong); //將短整形轉換為網路位元組序 unsigned short int htons(unsigned short int hostshort); //將網路位元組序轉換為長整型主機位元組序 unsigned long int ntonl(unsigned long int netlong); //將網路位元組序轉換為短整型主機位元組序 unsigned short int ntons(unsigned short int netshort);
在網路通訊中,長整型通常用來轉換ip地址,短整型通常用來轉換埠號(但任何格式化資料通過網路傳輸時都應該進行位元組序轉換);