1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > php 字节序 Linux_Linux中网络字节序和主机字节序 主机字节序就是我们平常说的 - phpStudy...

php 字节序 Linux_Linux中网络字节序和主机字节序 主机字节序就是我们平常说的 - phpStudy...

时间:2021-01-13 19:46:57

相关推荐

php 字节序 Linux_Linux中网络字节序和主机字节序 主机字节序就是我们平常说的 - phpStudy...

Linux中网络字节序和主机字节序

主机字节序就是我们平常说的大端和小端模式:不同的 CPU 有不同的字节序类型,这些字节序是指整数在内存中保存的顺序 这个叫做主机序。Big-Endian和Little-Endian。引用标准的Big-Endian和Little-Endian的定义如下:

a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

网络字节序:4个字节的32 bit值以下面的次序传输:首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit。这种传输次序称作大端字节序。由于 TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。字节序,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序,一个字节的数据没有顺序的问题了。

为了进行转换 bsd socket 提供了转换的函数 有下面四个

htons 把 unsigned short 类型从主机序转换到网络序

htonl 把 unsigned long 类型从主机序转换到网络序

ntohs 把 unsigned short 类型从网络序转换到主机序

ntohl 把 unsigned long 类型从网络序转换到主机序

在使用 little endian 的系统中 这些函数会把字节序进行转换

在使用 big endian 类型的系统中 这些函数会定义成空宏

注意:

1 、网络与主机字节转换函数 :htons ntohs htonl ntohl (s 就是 short l 是 long h 是 host n 是 network)

2 、不同的 CPU 上运行不同的操作系统,字节序也是不同的相关阅读:

Firefox 无法获取cssRules 的解决办法

javascript 字符串连接的性能问题(多浏览器)

CSS语法手册(六)分类属性

编写更优美的网页:精心设计的 CSS 框架可节省时间和工作

firefox getyear() getFullYear数获取年份的问题

剖析读取XML文件4种方法

CSS教程:汇总CSS属性的缩写

SQL Server安全性的终极禁忌:被忽视的系统

linux下删除乱码文件名的方法

ASP伪造REFERER

在Fedora 9下面配置ISATAP IPV6 tunnel

纯CSS实现的竖向导航菜单

jQuery ul标签下拉菜单演示代码

Linux 8个经典技巧分享

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。