1. 程式人生 > >主機位元組序與網路位元組序轉換

主機位元組序與網路位元組序轉換

小端位元組序:即一個整數的高位位元組存放在記憶體中的高位地址處,低位位元組存放在記憶體中的低位地址處 大端位元組序:與小端位元組序剛好相反

現代的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地址,短整型通常用來轉換埠號(但任何格式化資料通過網路傳輸時都應該進行位元組序轉換);