首页 > 其他分享 >网络字节序与主机字节序

网络字节序与主机字节序

时间:2022-10-06 22:24:47浏览次数:45  
标签:小端 字节 主机 网络 --------------------------------------------------------------------

字节序

字节序是什么呢?

根据字面意思来看,就可以大概知道它的意思. 就是字节在内存中存放的顺序.

然而 , 字节序 又分为 大端字节序小端字节序

举个例子

300 这是一个 十进制 的数

0000   0001   0010   1100         这是 300 的 二进制
高位                          低位

如果是小端字节序的话,它在内存的表示形式是:

/--------------------------------------------------------------------/
                                                              ----------内存地址
                                      0000                ---------- ox16
                                      0001                ---------- ox15
                                      0010                ---------- ox14
                                      1100                ---------- ox13
/--------------------------------------------------------------------/

如果是大端字节序的话,它在内存的表示形式是:
/--------------------------------------------------------------------/
                                                              ----------内存地址
                                      1100                ---------- ox16
                                      0010                ---------- ox15
                                      0001                ---------- ox14
                                      0000                ---------- ox13
/--------------------------------------------------------------------/

刚好相反
可以参考下图理解
0x123456780x11223344两个数字
小端存储

大端存储

大端一般称为网络字节序
而主机字节序有大段的又有小端的, CPU的产商不一样,设计出来的也就不一样

还有一些字节序的存储与编程语言有关,比如java就是用大端来存数据的

进行网络传输的时候都要转成大端来传输,TCP/IP协议规定的.
所以那些小端存储的就要想办法来解决这个问题
所以Socket就解决了这个问题, 它里面有几个函数htons、htonl从主机字节序到网络字节序的转换函数, ntohs、ntohl从网络字节序到主机字节序的转换函数

标签:小端,字节,主机,网络,--------------------------------------------------------------------
From: https://www.cnblogs.com/zzx-rabbit/p/16758672.html

相关文章

  • 计算机网络--应用层
    1.域名解析过程2.FTP ......
  • 网络字节序与主机字节序的转换函数实践
    1、网络字节序:是TCP/IP中一种固定好的数据表示格式,它与具体的CPU,操作系统,传输方式无关,从而可以保证数据在不同主机之间传输时能够兼容。2、主机字节序:即大端(BigEndian)......
  • 从 HelloWorld 看 Java 字节码文件结构
    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个Java代码背后到底是什么。今天就让我们从一个最简单的HelloWorld开始看一看Java的类文件结构。在开始......
  • Java网络编程Socket
    Java网络多线程2022年8月31日笔记韩顺平Java自学笔记网络多线程_关注永雏塔菲喵的博客-CSDN博客网课【韩顺平讲Java】Java网络多线程专题-TCPUDPSocket编程多......
  • 网络编程
    网络编程、OSI七层协议socket套接字编程、半连接层、粘包......
  • 恶意代码分析实战 恶意代码的网络特征 lab14-1 14-2 14-3 都是http c2,并用到了自定义
       先反编译看看:函数在做base64加密:   验证下想法,果然:后面的功能,就是在下载执行了:   我们分析下细节: 问题1:使用wireshark进行监控网络特征,运......
  • 这样可以更精确的目标检测——超网络
    暑假的“尾巴”很多人都抓不住了,因为不知不觉,新的学期要开始了,几家欢喜几家愁,但是会想起学生时代的我,还是特征憧憬新的学期到来,那种激动的心情无法用美丽的辞藻去形容,在此,也......
  • 网络字节序与主机字节序的转换函数实践。
    为了进行转换,BSDsocket提供了转换的函数,有下面四个:(BSDSocket是UNIX系统中通用的网络接口,它不仅支持各种不同的网络类型,而且也是一种内部进程之间的通信机制)头文件:#inc......
  • 网络字节序与主机字节序的转换函数实践
    1.什么是字节序字节序是处理器架构特性,用于指示像整数这样的大数据类型内部的字节如何排序。简单来说,就是指超过一个字节的数据类型在内存中的存储的顺序。那么很明显,像......
  • java字节输入流
    字节输入流java.io.InputStream此抽象类是表示字节1输入流的所有的超类。定义了所有子类共有的方法:intread()从输入流中读取数据的下一个字节。intread(byte[]......