C++技术问题总结-第11篇 网络通信中主机序网络序
2015-12-26 21:19
555 查看
网络通信常常涉及到字节序转化,接下来理解主机序和网络序有什么异同。
①主机字节顺序HBO(Host Byte Order)
採用小头序(little-endian),从低到高的顺序存储。
低位字节排放在内存的低地址端,高位地址排放在高位地址端。
②网络字节顺序NBO(Network Byte Order)
採用大头序(big-endian),从高到低的顺序存储。
高位字节排放在内存的低地址端,低位地址排放在高位地址端。
TCP/IP协议定义网络字节为big-endian。
举个样例,0x1234的存储例如以下。
经常使用的转化函数:
①htonl()--------------Host to Network Long
②ntohl()--------------Network to Host Long
③htons()--------------Host to Network Short
④ntohs()--------------Network to Host Short
①主机字节顺序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
相关文章推荐
- Http方法之PUT
- Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置
- Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置
- 计算机网络的分类
- Java网络编程(1) Socket缓…
- CMake安装和使用 http://blog.sina.com.cn/s/blog_5aee9eaf0100y36u.html
- Python 网络编程 SocketServer
- cas入门:https形式发布cas证书制作
- CMake 使用方法 http://www.cnblogs.com/lyq105/archive/2010/12/03/1895067.html
- Python 网络编程 Socket
- 网络流24题 之十四 孤岛营救问题 分层图
- TCP简介
- AsyncHttpClient
- linux内核ipv4网络部分分层结构及涉入源文件
- 使用HTTP访问网络
- Caffe 抽取CNN网络特征 Python
- linux 内核网络,数据接收流程图
- 计算机网络的基本概念
- reachbility检测网络变化
- TCP三次握手