ntohs()_ntohl()_htons()_htonl() 这几个函数的作用

网络通信之htonl()、htons()、ntohl()、ntohs()四个函数以及小端大端(小尾大尾)模式 前言:今天在工作中用到htonl()这个函数,不是很理解,查阅资料之后随笔就记录下来,方便以后工作和学习翻阅。 首先需要说明的是这四个函数的头文件都是#include htonl()函数函数原型是:uint32_t htonl(uint32_t hostlong) 其中,hostlong是主机字节顺序表达的32位数,htonl中的h–host主机地址,to–to,n–net网络,l–unsign 阅读详情

看如下代码:

#include <stdio.h>

int main(void)
{
        int i = 0x12345678;
        int y = 0;

        //先看看各种数据类型的大小
        printf("sizeof int = %d \n", sizeof(int));
        printf("sizeof short int = %d \n", sizeof(short int));
        printf("sizeof long int = %d \n", sizeof(long int));
        printf("sizeof long long = %d \n", sizeof(long long));

        printf("x = 0x%x.\n", i);

        //接着就是各个操作的结果
        y = htons(i);
        printf("y = htons(i) = 0x%x .\n", y);

        y = htonl(i);
        printf("y = htonl(i) = 0x%x.\n", y);

        y = ntohs(i);
        printf("y = ntohs(i) = 0x%x.\n", y);

        y = ntohl(i);
        printf("y = ntohl(i) = 0x%x.\n", y);

        return 0;
}
运行结果如下:

./a.out
sizeof int = 4
sizeof short int = 2
sizeof long int = 4
sizeof long long = 8
x = 0x12345678.
y = htons(i) = 0x7856 .
y = htonl(i) = 0x78563412.
y = ntohs(i) = 0x7856.
y = ntohl(i) = 0x78563412.



ntohs, ntohl, htons,htonl对比详解 ntohs =net to host short int 16位htons=host to net short int 16位ntohl =net to host long int 32位htonl=host to net long int 32位 网络字节顺序NBO(Network Byte Order) 按从高到低的顺序存储,在网络上使用同一的网络字节顺序,可避免兼容性问题; 主机字节顺序HBO(Host Byte Order) 不同的机器HBO不相同,与CPU的设计有关,数据的顺序是由CP 阅读详情

相关推荐

htonl函数的实现

ip字符转化成网络字节数的过程,希望能够帮助你理解htonl函数

htonl函数原理

#include&lt;WinSock2.h&gt;#pragma comment(lib,"ws2_32.lib");#include&lt;iostream&gt;using namespace std;unsigned long Htonl(unsigned long lo)//自己实现htonl函数{char* p=(char*)&amp;lo;char t=p[0];p[0]=p[3];...

hiahiapoom的博客 4291

Windows下TensorRT+YOLOv11部署避坑指南:从CUDA配置到模型加密全流程

本文详细解析了在Windows平台部署YOLOv11与TensorRT的全流程,重点涵盖从CUDA环境配置、工程编译适配到模型加密保护的实战指南。基于wang-xinyu的tensorrtx仓库,提供了详细的版本选择、编译问题修复方案,并深入探讨了如何对TensorRT引擎进行加密,以实现高效且安全的端到端部署。

vscode5coder的博客 450

htonl()函数学习

今天在网上看到一篇关于htonl()函数的解释,感觉有道理,贴过来大家一起学习! htonl就是把本机字节顺序转化为网络字节顺序 h---host 本地主机 to  就是to 了 n  ---net 网络的意思 l 是 unsigned long 所谓网络字节

yaxiya的专栏 5万+

ISO7816协议深度解析-简单易懂协议详解(一)-- 复位,字符帧,及ATR

1. 摘要 IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议。 • T=0通讯协议是异步半双工字符传输协议; • T=1通讯协议是异步半双工块传输协议; 在ISO7816-3标准中,具体规定了这两种协议:T0和T1。 IC卡所用的协议在TD1中指定,如果在复位应答信息中没有TD1,则表示用T=0的协议进行通讯。在复位应答后,IC卡和终端之间即用IC卡指定的协议进行通讯。 2. 硬件接口 1)VCC:电源输入(A类:5V, B类:3V) 2)GND:地 3

代码打工人的博客 4万+

科研智能体平台搭建与实战:大模型如何驱动科研自动化

大模型技术的快速发展,正推动AI智能体从单纯对话工具向主动执行任务的科研伙伴演进。智能体的核心原理在于整合模型调用、工具使用、知识库检索与工作流编排,使其能够自主拆解目标、执行操作并迭代优化。在科研场景中,这一技术价值尤为突出:文献初筛、实验数据清洗、代码调试、结果汇总等高频重复劳动均可实现自动化,大幅释放研究者精力。从基础组件配置到多智能体协同,从平台选型到提示词调优,实际落地需要关注模型匹配、工具稳定性、记忆管理与人机校验机制。本文基于真实工程经验,系统梳理科研智能体平台的搭建路径、应用案例与高频问题排

weixin_32597009的博客 285

htonl函数的功能_htonl()函数详解

在《Linux网络编程》这本书中提到htonl()函数的原型。实现代码如下:long htonl(long value){return ((value <<24 )|((value<<8)&0x00FF0000)|((value>>8)&0x0000FF00)|(value>>24));}函数其实很好理解,就是小端装换成大端,因为网络...

weixin_39845220的博客 2888

GT911触摸驱动避坑指南:从寄存器读取到多点触控处理的5个关键步骤详解

本文深入解析了GT911触摸驱动开发中的关键步骤与常见问题。从硬件初始化、I2C通信建立,到核心寄存器操作、缓冲区状态管理,再到配置表烧录与多点触控数据解析,提供了详尽的避坑指南。文章结合STM32等平台的实战代码,重点阐述了驱动调试中的时序、中断处理和坐标映射等核心要点,帮助开发者高效实现稳定可靠的多点触控功能。

weixin_29189363的博客 676

Linux网络通信----htonl()、htons()、ntohl()、ntohs()四个函数

转载:https://blog.youkuaiyun.com/miao19920101/article/details/69398158 前言: 今天在工作中用到htonl()这个函数,不是很理解,查阅资料之后随笔就记录下来,方便以后工作和学习翻阅。 首先

weixin_43743711的博客 4万+

超声波 vs 红外 vs 激光雷达:扫地机器人避障传感器选型指南(实测对比)

本文深入对比了扫地机器人三种主流避障传感器——超声波、红外与激光雷达的核心原理与实测表现。文章基于成本、精度、环境适应性等关键指标,提供了清晰的选型决策树和典型场景配置方案,旨在帮助开发者与爱好者根据项目需求与预算,构建高效可靠的机器人避障系统。

h0i1j2k3l的博客 690

【3天快速入门WPF】11-附加属性

创建一个静态类,用于定义附加属性。使用方法注册附加属性。提供Get和Set方法来获取和设置附加属性的值。通过以上步骤,我们可以在WPF中轻松实现和使用附加属性。附加属性的主要用途包括为控件添加自定义行为、控制布局信息(如Grid.Row和)以及实现动态样式。

Zy100Papa的博客 679

ntohl()、htonl()、ntohs()、htons()函数用法

ntohl()、htonl()、ntohs()、htons()这几个函数的作用是进行字节顺序的转换,在理解这几个函数之前,我们先了解一下数据的存储。 一、大端存储和小端存储 1、大端存储:在计算机中,数据是按照字节存储的,多于一个字节的数据,把高字节部分存储在低地址,把低字节部分存储在高地址,这种方式称为大端存储。 例:0x12345678这个数据,我们一般认为左边是高字节部分...

bigmarshal的博客 1万+

高电压技术的面试内容整理(详细版本:57题)

涵盖了高电压技术的关键领域,包括气体放电的物理过程、液体和固体介质的绝缘特性、高压外绝缘的分类与特性、电气设备绝缘试验的方法与原理、电力系统的防雷保护措施,以及内部过电压的产生、影响与限制方法,为理解和应对高电压环境下的电气问题提供了系统的知识框架。通过深入探讨气体放电理论、介质极化与损耗、绝缘子的电气特性、绝缘试验技术、防雷策略以及内部过电压的管理。

weixin_44808274的博客 777

ntohs, ntohl, htons,htonl的比较和详解

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。   这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数:   htonl()--"Host to Network Long int"     32Bytes   ntohl()--"Network to Host Long int"     3

编程就是在计算机中反应世界 2万+

博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询)

博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮训写法和注意事项。博途PLC1200/1500PLC ModbusTcp通信(轮询处理)_RXXW_Dor的博客-优快云博客。............

RXXW_Dor的博客 8425

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ntohl()、htonl()函数

ntohl()将一个无符号长整形数从网络字节顺序转换为主机字节顺序, ntohl()返回一个以主机字节顺序表达的数。ntohl()返回一个以主机字节顺序表达的数。 htonl()将主机数转换成无符号长整型的网络字节顺序。本函数将一个32位数从主机字节顺序转换成网络字节顺序。 #include<stdio.h> typedef unsigned short uint16; ty...

SuGuolin的博客 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

htonl()、htons()、ntohl()、ntohs()四个函数

htons 是把你机器上的整数转换成“网络字节序”, 网络字节序是 big-endian,也就是整数的高位字节存放在内存的低地址处。htons 的用处就是把实际内存中的整数存放方式调整成“网络字节序”的方式。这些函数在不同的操作系统上可能会有一些细微的差别,但它们的目的都是为了处理网络数据的字节顺序转换,以确保在不同的主机上进行网络通信时能够正确解释数据的顺序。主机字节顺序指的是在特定主机体系结构上整数的字节表示方式,而网络字节顺序是一种固定的大端字节顺序,用于在不同主机之间进行通信。

路虽远,行则将至 5211

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

htons、htonl、ntohl、ntohs的区别与使用

文章目录1、网络编程字节转换2. 主机字节顺序<-->网络字节顺序3.大小端模式 1、网络编程字节转换 s表示短、l表示长; ntohs =net to host short int 16位 htons=host to net short int 16位 ntohl =net to host long int 32位 htonl=host to net long int 32位 上面四个函数分别用于从网络字节顺序(net)与主机字节顺序(host)之间的转换; 上面函数用于十六进制之间的转换;

107 2万+

Linux网络通信:htonl(),htons(),ntohs(),ntohl()函数解释

Linux网络通信htonl(),htons(),ntohs(),ntohl()函数解释。

Whale_XH的Blog 3594

htons(), htonl(), ntohs(), ntohl()

将多字节整数类型的数据,从主机的字节顺序转化为网络字节顺序原型:#include uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t ntohs(uint16_t netshort); 描述:不同的计算机里对它们的多字

dumeifang的专栏 9195

htons(), ntohl(), ntohs(),htons()这4个函数

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数。 网络字节顺序与本地字节顺序之间的转换函数: htonl()–“Host to Network Long” ntohl()–“Network to Host Long” htons()–“Host to Network Short” ntohs()–“Network to Host Short” 之所以需要这些函数是因为计算机数据表示存在两种字节

dianqicyuyan的博客 4343

htonl ntohl htons ntohs

在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。 这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数:       htonl()--"Host to Network Long int"     32Bytes       ntohl()--"Network to Host Long in

上善若水 2035

ntohs, ntohl, htons,htonl

ntohs, ntohl, htons,htonl的比较和详解 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。 这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数: htonl()–“Host to Network Long int” 32Bytes ntohl()–“Network to Host Long int” 32Bytes htons()–“Host to Network Sho

dianqicyuyan的博客 2934

C/C++htonl(), ntohl(), ntohs(),htons()

如 Intelx86结构下,short型数0x1234表示为34 12, int型数0x12345678表示为78 56 34 12如IBM power PC结构下,short型数0x1234表示为12 34, int型数0x12345678表示为12 34 56 78。在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题。在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。得到的结果是4096,初一看感觉很怪。

墨痕诉清风的博客 4121
上一篇: 几个信号处理函数和一些信号相关的结构体
下一篇: 一段小清新的宏定义使用
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值