htons(), htonl(), ntohs(), ntohl()
在网络编程中,往往会遇到字节的网络顺序和主机顺序的问题。
我们先来了解下字节的网络顺序和主机顺序:
网络字节序与主机字节序
主机字节序:就是我们平常说的大端和小端模式,不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,这个叫做主机序。引用标准的Big-Endian和Little-Endian的定义如下:
a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
网络字节序:4个字节的32 bit值以下面的次序传输,首先是0~7bit,其次8~15bit,然后16~23bit,最后是24~31bit。这种传输次序称作大端字节序。由于TCP/IP首部中所有的二进制整数在网络中传输时都要求以这种次序,因此它又称作网络字节序。字节序,顾名思义字节的顺序,就是大于一个字节类型的数据在内存中的存放顺序,一个字节的数据没有顺序的问题了。
在Linux系统下:htons(), htonl(), ntohs(), ntohl()的头文件及函数定义:
#include <arpa/inet.h> uint16_t htons(uint16_t hostshort); //将主机的无符号短整形数转换成网络字节顺序uint32_t htonl(uint32_t hostlong); //将主机的无符号长整形数转换成网络字节顺序。uint16_t ntohs(uint16_t netshort); //将一个无符号短整形数从网络字节顺序转换为主机字节顺序。 uint32_t ntohl(uint32_t netlong); // 将一个无符号长整形数从网络字节顺序转换为主机字节顺序。
htons(), htonl(), ntohs(), ntohl()相关推荐
- Windows下Qt使用htons,htonl,ntohs,ntohl
pro文件加上: LIBS += -lws2_32 源代码包含头文件: #include <WinSock2.h>
- 模拟htonl、ntohl、htons、ntohs函数实现
模拟htonl.ntohl.htons.ntohs函数实现 2010-04-14 17:25:06| 分类: 网络编程 | 标签: |字号大中小 订阅 From: http://wxxweb.bl ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs
Part 1: htons函数具体解释 在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 i ...
- ntohs, ntohl, htons,htonl
ntohs, ntohl, htons,htonl的比较和详解 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题. 这时就可能用到htons(), ntohl(), ntohs( ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs【转】
(转自:https://blog.csdn.net/kulala082/article/details/53431473) Part 1: htons函数具体解释 在Linux和Windows网络编程 ...
- 使用宏模拟htonl、ntohl、htons、ntohs的实现
文章转自:htonl.ntohl.htons.ntohs函数实现 typedef unsigned short int uint16;typedef unsigned long int uint32; ...
- htonl,htons 和 ntohs相关问题
htonl函数是一个网络转换的函数,他把不确定的一个32位数字,转换成网络通用的32位数字,即大头在后的方式. 我们一般使用的计算机都是大头在后,也就是高地址在后面的形式. 比如你定义一个整型变量 i ...
- 【VS开发】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short nets ...
- 【网络】IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short nets ...
最新文章
- 20165235 第十周课下补做
- LeetCode_database刷题记录(182. 查找重复的电子邮箱)
- java语言生日蛋糕代码_AcWing 168. 【Java】生日蛋糕
- 功能自动化接入持续集成方案
- 跨库访问-dblink
- 软件测试三五七原则,运动前必看!“三五七”原则和注意事项
- 良心安利东方 rpg游戏制作大师素材网站
- 利用lavarel框架实现Todos App
- BOM 定时器+回调函数
- 【Android】使用MPAndroidChart过程中BarChart的几点心得
- 朱晔的互联网架构实践心得S1E8:三十种架构设计模式(下)
- 触摸屏 触摸操作 鼠标点击事件
- EasyExcel 固定(冻结)单元格
- Verilog AXI Components
- python语言画四叶草的程序_python绘图四叶草_后端开发
- 计算机excel2010知识点,Excel-模拟分析和图表知识点讲解-计算机二级Office
- ubuntu下制作window启动盘(官方)
- 个人简历制作时的自我评价应该怎么写?
- 单片机作业 可乐浇汁 “苦乐交织”
- win7计算机连接xp计算机,浅析win7系统电脑连接共享xp打印机教程