网络编程之字节序

2023-11-10

字节序

计算机数据表示存在两种字节顺序:网络字节顺序NBO(Network Byte Order)与主机字节顺序HBO(Host Byte Order)或者是大端模式和小端模式

网络字节序(大端模式)

网络字节顺序NBO: 按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。

主机字节序(小端模式)

主机字节顺序HBO: 不同的机器HBO不相同,与CPU设计有关,数据的顺序是由cpu决定的,而与操作系统无关。(大端和小端模式与cpu设计有关而和操作系统无关)

特征

a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
c) 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。

字节序转换函数

网络字节顺序与本地字节顺序之间的转换函数:
htons和htonl函数,是用来将主机字节顺序转换为网络字节顺序
ntohs和ntonh函数,是用来将主机字节顺序转换为网络字节顺序

htonl()--"Host to Network Long"
ntohl()--"Network to Host Long"
htons()--"Host to Network Short"
ntohs()--"Network to Host Short"

注意

htonl 是针对32位,4个字节而言
htons 是针对16位,2个字节而言
数字所占位数小于或等于一个字节(8 bits)时,不要需转换。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络编程之字节序 的相关文章

随机推荐

  • 快照java开源_VNDK 快照设计  

    即使系统映像和供应商映像是基于不同版本的 Android 构建的 系统映像也可以使用 VNDK 快照为供应商映像提供正确的 VNDK 库 创建 VNDK 快照需要以快照形式捕获 VNDK 库 并使用版本号标记它们 供应商映像可以与特定的 V
  • Oracle数据库基本语句练习

    以ORACLE数据库为主提纲 第一部分 SQL语言基础 第一章 Oracle命令类别及sql简单语法介绍第二章 oracle的基本函数第三章 oracle的数据类型第四章 多表连接技术 第二部分 oracle基本对象及SQL优化 第一章 执
  • 行为分析(九):人形检测部分(二):YOLO系、RCNN系、SSD系、EfficicnetDet系、Transformer系目标检测模型对比

    将模型进行对比 试着描述一下不同系列模型的根本差异与各自的优缺点 会更有益记忆 SSD论文 https arxiv org pdf 1512 02325 pdf YOLOv4论文 https arxiv org pdf 2004 10934
  • DSP T320F2803x 模数转换模块 ADC

    一 ADC 概览 1 1 特点 29803x 的 ADC 模块是12位循环 ADC 部分 SAR 部分流水线 其核心是 12 位的转换器 有两个采样保持器 可同时或顺序采样 通过多路复用后有 16 个模拟转换输入通道 转换器可以配置为与内部
  • DES加密算法在C#下的实现

    选择自 tren 的 Blog 此程序分两部分 第一部分为主程序 另一部分为函数库 本程序中用int 表示char的2进制形式 如 a int 8 0 1 1 0 0 0 0 1 下面副程序 本程序在C 2005下通过 region Usi
  • ElasticSearch实现聚合结果的筛选

    小编我想实现这样一个操作 c group id取值格式为 100 101 102 103 而我想做的操作是 聚合时候只返回编号是 101 格式的数据 实现的核心代码是 在聚合下面加一个 include 101 就可以 aggs字段提供了过滤
  • JavaScript-----轮播图案例展示

    前言 这一期我们去通过JavaScript的代码实现轮播图的制作 下面有效果展示和代码资源 其中的图片资源和代码资源我都上传上去了 如果需要运行的话 你们可以去直接下载下来 希望各位喜欢 效果展示 1694164869515 功能说明 这个
  • 响铃:从《中国汽车四十年》看4S店的“革命之路”

    文 曾响铃 来源 科技向令说 xiangling0815 除了贾跃亭造车 特斯拉私有化等舆论热点 作为最大的制造业领域 汽车这个行当从来就不缺话题 最近 一本 中国汽车四十年 突然火爆起来 怀旧夹杂着新生 受到汽车行业及相关的从业者热捧 而
  • Mybatis学习

    Mybatis配置步骤 总体配置目录结构 在resources下面新建mybatis config xml
  • 采矿权EXCEL文件坐标串矢量化和信息提取

    解决思路 1 采矿权文件坐标格式规则 百度出来的规则 2 将规则输入chatgpt中 让其给出arcpy的代码 如下结果 不得不说 chatgpt确实很强大 事半功倍 检查测试下了代码 xy坐标互换了下 解析坐标时列值有点不正确 index
  • springboot实现单文件上传和多文件上传(注释详细,最新版本)

    关于文件 我一般都是存在oss里面的 因为比赛可能要用到 所以又去学了一下存在服务器里面 关于这里 我是存本地目录的 单文件上传 首先创建一个springBoot项目 这个就不说了 然后创建一个文件上传的html页面
  • 超实用的python技巧:python读写Excel表格的实例代码(简单实用)

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 这篇文章主要介绍了python读写Excel表格的方法 本文通过实例代码给大家介绍的非常详细 具有一定的参考借鉴价值 需要的朋友可以参考下 安装两个库 pip instal
  • 前端vue项目一键换肤主题技术方案

    一 技术核心 通过切换 css 选择器的方式实现主题样式的切换 在组件中保留不变的样式 将需要变化的样式进行抽离 提供多种样式 给不同的主题定义一个对应的 CSS 选择器 根据不同主题通过切换CSS选择器设置不同的样式 二 实现方法 提取公
  • 数学建模之Python-随机森林算法

    理论 代码 coding utf 8 author Administrator step1 调用包 import pandas as pd from sklearn model selection import train test spl
  • Arduino UNO R3

    Arduino 常见型号 当然还有 LilyPad 附图 最常见的自然是UNO 最新版是第三版R3 国内也有一些改进的板子 我用的是一般的板子 拿到货也只能默默了 简介 The Uno is a microcontroller board
  • SyntaxError: unexpected EOF while parsing

    报错在eval 函数 正确代码段 with open COCO train json r as f data f readline data data strip split del data 0 del data 1 for i in d
  • 华为HCIA(五)

    Vlan id 在802 1Q中 高级ACL不能匹配用户名和源MAC 2 4G频段被分为14个交叠的 错列的20MHz信道 信道编码从1到14 邻近的信道之间存在一定的重叠范围 STA通过Probe获取SSID信息 Snmp报文 网络管理设
  • Java-1.1

    题目描述 编写程序 显示Welcome to Java Welcome to Computer Science Programming is fun 代码 public class PrintfMessage public static v
  • 首次访问(域名)过程

    1 解析出域名对应的ip地址 先知道默认的网关 使用arp协议获取默认网关的mac地址 组织数据发送给默认网关 ip还是dns服务器的ip但是mac地址是默认网关的mac地址 默认网关拥有转发数据的能力把数据转发给路由器 路由器根据自己的路
  • 网络编程之字节序

    字节序 计算机数据表示存在两种字节顺序 网络字节顺序NBO Network Byte Order 与主机字节顺序HBO Host Byte Order 或者是大端模式和小端模式 网络字节序 大端模式 网络字节顺序NBO 按从高到低的顺序存储