字节序转换函数

目录

  • 为什么要字节序转换?
  • 网络协议指定通讯字节序为大端
  • 字节序转换函数
    • 主机字节序转换为网络字节序
      • hton1 (host to network l是length指长整型)
      • htons (host to network s是short指短整型)
      • 两个函数的代码案例
    • 网络字节序转主机字节序
      • ntoh1
      • ntohs

为什么要字节序转换?

两台机器通信,如果字节序不同就G了。
如果我是小端,你是大端,我接收你传过来的内容,最终呈现出来东西就出问题了。
如果只有一个字节的话,那没事了。

运行在同一台计算机上的进程相互通信也不需要考虑字节序。

不同的计算机通讯时都将自己的字节序转换为网络字节序。

网络协议指定通讯字节序为大端

字节序转换函数

主机字节序转换为网络字节序

hton1 (host to network l是length指长整型)

在这里插入图片描述

htons (host to network s是short指短整型)

在这里插入图片描述

两个函数的代码案例

#include<stdio.h>
#include<arpa/inet.h>int main(int argc,char const * argv[])
{int a=0x12345678; //int四个字节,分别存储12 34 56 78short b=0x1234;printf("%#x\n",htonl(a));printf("%#x\n",htons(b));return 0;
}

在这里插入图片描述

网络字节序转主机字节序

ntoh1

在这里插入图片描述

ntohs

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【报名指南】2024年第九届数维杯数学建模挑战赛报名全流程图解

1.官方报名链接&#xff1a; 2024年第九届数维杯大学生数学建模挑战赛http://www.nmmcm.org.cn/match_detail/32 2.报名流程&#xff08;电脑与手机报名操作流程一致&#xff09; 参赛对象为在校专科生、本科生、研究生&#xff0c;每组参赛人数为1-3人&#xff08;指导老师不…

【MySQL】数据查询——DQL基本数据库查询

目录 查询语法1. 查询表中所有的数据行和列&#xff0c;采用“*”符号2. 查询表中指定列的数据。3. 在查询中使用别名&#xff0c;使用“AS”关键字。4. 在查询中使用常量列&#xff1a;如果需要将一些常量的默认信息添加到输出结果中&#xff0c;以方便统计或计算。可以使用常…

解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(一)

本系列文章简介&#xff1a; 本系列文章将深入探究Spring Cloud LoadBalancer的工作原理和应用场景&#xff0c;并揭示其背后的神奇之处。通过解密这个魔法密卷&#xff0c;我们将能够了解如何构建具有高效、可靠性的负载均衡系统&#xff0c;以及如何在微服务架构中实现优化的…

Unity 预制体与变体

预制体作用&#xff1a; 更改预制体&#xff0c;则更改全部的以预制体复制出的模型。 生成预制体&#xff1a; 当你建立好了一个模型&#xff0c;从层级拖动到项目中即可生成预制体。 预制体复制模型&#xff1a; 将项目中的预制体拖动到层级中即可复制。或者选择物体复制粘贴。…

Shell之字符处理

一、字符处理 1.1 cut命令 命令格式&#xff1a; cut [选项] 文件名 选项&#xff1a; -f 列号&#xff1a; 提取第几列-d 分隔符&#xff1a; 按照指定分割符进行分割&#xff0c;默认的分割符是制表符&#xff0c;注意分割符不能使用空格。示例&#xff1a; # 每个字段已…

如何选择垃圾收集器安全点安全区

如何选择垃圾收集器&安全点&安全区 如何选择垃圾收集器 优先调整堆的大小让服务器自己来选择如果内存小于100M&#xff0c;使用串行收集器如果是单核&#xff0c;并且没有停顿时间的要求&#xff0c;串行或JVM自己选择如果允许停顿时间超过1秒&#xff0c;选择并行或…

AWS ECS Fargate禁止公网访问

当在AWS ECS(Elastic Container Service)上运行任务时,默认情况下,ECS会自动为每个任务分配一个公有IP地址。然而,并不是所有的情况下都需要或希望任务具有公有IP地址(NAT或公网拉取镜像需要)。在某些情况下,你可能希望ECS任务只能通过私有IP地址访问,并且不暴露到公共网…

Jenkins自动化部署之流水线模式部署

文章目录 任务类型Pipeline流水线项目声明式的Pipeline脚本式Pipeline 示例脚本生成Tools配置示例 高级Pipeline Script from SCM 任务类型 在Jenkins中&#xff0c;有不同类型的任务&#xff08;项目&#xff09;适用于不同的构建需求。以下是一些常见的Jenkins任务类型&…

Vue.js 案例

Vue.js 是一个构建数据驱动的 web 界面的渐进式框架。它是目前前端开发领域非常热门的技术之一&#xff0c;因为它易于上手&#xff0c;功能强大&#xff0c;且与其他库或已有项目整合度高。 下面是一个简单的 Vue 项目实战步骤&#xff0c;帮助你了解如何使用 Vue.js 来创建一…

MYSQL03高级_新增用户、授予权限、授权底层表结构、角色理解

文章目录 ①. 登录服务器操作②. 用户的增删改③. 修改用户密码④. MySQL8密码管理⑤. 权限列表及原则⑥. 授予查看回收权限⑦. 底层权限表操作⑧. 角色的理解 ①. 登录服务器操作 ①. 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql –h hostname|hos…

32单片机基础:TIM输出比较

这个输出比较功能是非常重要的&#xff0c;它主要是用来输出PWM波形,PWM波形又是驱动电机的必要条件&#xff0c;所以你如果想用STM32做一些有电机的项目&#xff0c;比如智能车&#xff0c;机器人等。 IC: Input Capture 输入捕获 CC:Capture/Compare一般表示输入捕获和输出…

【学习心得】浏览器开发者工具中出现的VM开头的JS文件是什么?

一、现象描述 在Chrome的开发者工具中&#xff0c;你可能会看到一些以“VM”开头的JavaScript文件&#xff08;如“VM111.js”&#xff09;。 二、VM文件到底是什么&#xff1f; “VM”表示的是Virtual Machine&#xff08;虚拟机&#xff09;&#xff0c;这些文件通常表示由浏…

利用Unity和OpenXR实现眼动追踪的基础指南

在虚拟现实(VR)领域&#xff0c;眼动追踪技术正逐渐成为增强用户交互体验的关键工具。本文将引导你通过Unity和OpenXR实现眼动追踪功能&#xff0c;特别是针对HTC Vive Focus 3这样的设备。我们将从配置环境开始&#xff0c;一直到编写获取眼动数据的脚本。 环境配置 安装Uni…

2-29算法习题总结

贪心问题 小A的糖果 题目描述 小 A 有 n n n 个糖果盒&#xff0c;第 i i i 个盒中有 a i a_i ai​ 颗糖果。 小 A 每次可以从其中一盒糖果中吃掉一颗&#xff0c;他想知道&#xff0c;要让任意两个相邻的盒子中糖的个数之和都不大于 x x x&#xff0c;至少得吃掉几颗糖…

网站文章被百度快速收录的工具

百度是中国最主要的搜索引擎之一&#xff0c;对于网站管理员来说&#xff0c;网站文章被百度快速收录是至关重要的&#xff0c;因为这直接影响着文章的曝光和网站的流量。然而&#xff0c;许多网站管理员都会问一个常见的问题&#xff1a;文章百度收录需要几天&#xff1f;在这…

C语言基础17 判断

断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。 下面是…

MYSQL01高级_Linux版安装、各级别字符集、字符集与比较规则、SQL大小写规范

文章目录 ①. MySQL - linux版安装②. 字符集的相关操作③. 各级别的字符集④. 字符集与比较规则(了解)⑤. SQL大小写规范⑥. sql_mode的合理设置 ①. MySQL - linux版安装 ①. 进入mysql官网,找到安装文件 ②. 将抽取出来的文件放在linux下的opt下 MySQL Community Serv…

WebSocket介绍与应用

介绍 WebSocket 是基于TCP的一种的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短连接WebSocket是长连接…

Vue3 + MybatisPlus实现批量删除功能

目录 一、后端 1.1 编写后端接口 1.2 编写service和其实现类 二、前端 2.1 组件加多选样式 2.2 实现多选调用的方法 2.3 编写批量删除的按钮 2.4 执行批量删除请求代码 一、后端 1.1 编写后端接口 PostMapping("/batchDelete") public CommonResult<Boo…

Python中简单正则获取百度新闻页面所有超链接示例

一、示例代码&#xff1a; import re import requestsheaders {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/""85.0.4183.83 Safari/537.36"} resp requests.get(http://news.…