网络通信经常涉及到字节序转化,接下来理解主机序和网络序有什么异同。
①主机字节顺序HBO(Host Byte Order)
采用小头序(little-endian),从低到高的顺序存储。
低位字节排放在内存的低地址端,高位地址排放在高位地址端。
②网络字节顺序NBO(Network Byte Order)
采用大头序(big-endian),从高到低的顺序存储。
高位字节排放在内存的低地址端,低位地址排放在高位地址端。
TCP/IP协议定义网络字节为big-endian。
举个例子,0x1234的存储如下。
字节序
|
addr
|
addr+1
|
HBO
|
0x34
|
0x12
|
NBO
|
0x12
|
0x34
|
常用的转化函数:
①htonl()--------------Host to Network Long
②ntohl()--------------Network to Host Long
③htons()--------------Host to Network Short
④ntohs()--------------Network to Host Short
C++技术问题总结-第11篇 网络通信中主机序网络序
原文:http://blog.csdn.net/segen_jaa/article/details/39961773