《Linux环境下C编程指南(第二版)》 2012-10-27读书笔记 字节序汇总
2012-10-27 15:17
274 查看
《Linux环境下C编程指南(第二版)》p256
计算机在内存中的数据存储方式有两种:一种是小端字节序,即内存低地址存储数据低字节,高地址存储数据高字节;另外一种是大端字节序,即内存低地址存储数据高字节,而高地址存储数据低字节。
如下图所示:
网络字节序使用的是大端字节序。某个给定系统所采用的是字节序是主机字节序,他可能是小端字节序(xp、ubuntu等),也可能是大端字节序(aix)。在网络协议中处理多字节数据(比如int类型数据)采用的都是网络字节序,而不是主机字节序。要把主机字节序和网络字节序相对应,就要用到提供主机字节序和网络字节序之间相互转换功能的函数。
以上函数中,h表示host,n表示network,s表示short,l表示long。一般情况下,使用htos和ntohs转换端口号,使用htonl和ntohl转换IP地址。
计算机在内存中的数据存储方式有两种:一种是小端字节序,即内存低地址存储数据低字节,高地址存储数据高字节;另外一种是大端字节序,即内存低地址存储数据高字节,而高地址存储数据低字节。
如下图所示:
网络字节序使用的是大端字节序。某个给定系统所采用的是字节序是主机字节序,他可能是小端字节序(xp、ubuntu等),也可能是大端字节序(aix)。在网络协议中处理多字节数据(比如int类型数据)采用的都是网络字节序,而不是主机字节序。要把主机字节序和网络字节序相对应,就要用到提供主机字节序和网络字节序之间相互转换功能的函数。
#include <netinet/in.h> uint16_t htons(uint16_t hostvalue); uint32_t htonl(uint32_t hostvalue);返回网络字节序
#include <netinet/in.h> uint16_t ntohs(uint16_t netvalue); uint32_t ntohl(uint32_t netvalue);返回主机字节序
以上函数中,h表示host,n表示network,s表示short,l表示long。一般情况下,使用htos和ntohs转换端口号,使用htonl和ntohl转换IP地址。
相关文章推荐
- 《Linux环境下C编程指南(第二版)》 2012-10-27读书笔记 ip地址转换函数
- 《Linux环境下C编程指南(第二版)》 2012-10-27读书笔记 客户端/服务器设计
- lua程序设计第二版 读书笔记(5-8章)
- 读书笔记 JavaScipt DOM编程艺术(第二版)
- 《你的灯亮着吗》 第二版 读书笔记
- 《JavaScript语言精髓与编程实践》(第二版)相关资源汇总
- 《鸟哥的Linux私房菜 基础学习篇(第二版)》 读书笔记 第07章 Linux文件和目录管理
- Python核心教程(第二版)读书笔记(三)
- Spring in Action(第二版)中文版读书笔记(2-1)
- lua程序设计第二版 读书笔记(15-17章)
- 代码大全第二版读书笔记 第二部分-创建高质量的代码 五、软件构建中的设计
- C++编程思想第二版第二卷读书笔记2——深入学习string类
- 代码大全第二版读书笔记 第二部分-创建高质量的代码 八、防御式编程
- Effective Java 英文 第二版 读书笔记 Item 5:Avoid creating unnecessary objects.
- 读书笔记_深入理解Java虚拟机(第二版)
- 程序员面试宝典(第二版)要点汇总
- 《游戏设计艺术(第二版)》读书笔记
- 读书笔记:JavaScript DOM 编程艺术(第二版)
- 【C++】《Effective C++》读书笔记汇总
- 37.读书笔记收获不止Oracle之常用诊断命令汇总