关于htons和htonl
我开始的时候认为htons和htonl可以只用htonl代替但是后来发现这个是错误,会导致服务器端和客户端连接不上。
下面就让我们看看他们:
htons
uint16_t htons(uint16_t hostshort);
htons的功能:
将一个无符号短整型数值转换为网络字节序,即大端模式(big-endian) 参数u_short hostshort: 16位无符号整数 返回值:
TCP / IP网络字节顺序.
htons 是把你机器上的整数转换成“网络字节序”, 网络字节序是 big-endian,也就是整数的高位字节存放在内存的低地址处。 而我们常用的 x86 CPU (intel, AMD) 电脑是 little-endian,也就是整数的低位字节放在内存的低字节处。
举个例子:
假定你的port是 0x1234, 在网络字节序里 这个port放到内存中就应该显示成 addr addr+1 0x12 0x34 而在x86电脑上,0x1234放到内存中实际是: addr addr+1 0x34 0x12 htons 的用处就是把实际内存中的整数存放方式调整成“网络字节序”的方式。
htonl()
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
hostlong:主机字节顺序表达的32位数。
注释:
本 函数将一个32位数从主机字节顺序转换成网络字节顺序。
返回值:
htonl()返回一个网络字节顺序的值。
参见:
htons(), ntohl(), ntohs().
在Linux系统下:
#include <arpa/inet.h>
uint32_t htonl(uint32_t hostlong);
相关函数: uint16_t htons(uint16_t hostshort); uint32_t ntohl(uint32_t netlong); uint16_t ntohs(uint16_t netshort); 网际协议在处理这些多字节整数时,使用大端字节序。 在主机本身就使用大端字节序时,这些函数通常被定义为空宏。
关于htons和htonl相关推荐
- 【Socket网络编程】3.字节序转换函数htons、htonl ,地址转换函数inet_ntoa、inet_ntop、inet_pton、inet_addr
字节序转换函数htons.htonl 地址转换函数inet_ntoa.inet_ntop.inet_pton.inet_addr 1.字节序转换函数 #include <arpa/inet.h& ...
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
from https://blog.csdn.net/baidu_33621692/article/details/53213002 网络字节顺序和主机字节顺序的转换(htons ntohs hto ...
- htons和htonl
htons和htonl htons htons是将整型变量从主机字节顺序转变成网络字节顺序, 就是整数在地址空间存储方式变为高位字节存放在内存的低地址处. 网络字节顺序是TCP/IP中规定好的一种数据 ...
- htons、htonl、ntohl、ntohs的区别与使用
文章目录 1.网络编程字节转换 2. 主机字节顺序<-->网络字节顺序 3.大小端模式 1.网络编程字节转换 s表示短.l表示长: ntohs =net to host short int ...
- htonl(), ntohl(), htons(), ntohs() 函数具体应用
htons和htonl函数具体应用 htons和htonl函数,是用来将主机字节顺序转换为网络字节顺序 在进行网络抓包时,抓到的包的数据是网络字节顺序,在进行编程时,要进行主机字节顺序和网络字节顺序间 ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs
Part 1: htons函数具体解释 在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 i ...
- htonl,htons 和 ntohs相关问题
htonl函数是一个网络转换的函数,他把不确定的一个32位数字,转换成网络通用的32位数字,即大头在后的方式. 我们一般使用的计算机都是大头在后,也就是高地址在后面的形式. 比如你定义一个整型变量 i ...
- 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs【转】
(转自:https://blog.csdn.net/kulala082/article/details/53431473) Part 1: htons函数具体解释 在Linux和Windows网络编程 ...
- C/C++htonl(), ntohl(), ntohs(),htons()
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数. 网络字节顺序与本地字节顺序之间的转 ...
最新文章
- IOS开发笔记15-自定义类
- [Skill]-Markdown编辑器技巧
- 三十四、Scrapy中的CrawlSpider
- vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用
- Java for LeetCode 061 Rotate List
- [css] 移动页面底部工具条有3个图标,如何平分?在设置边框后最后一个图标掉下去了怎么办?
- 事务的隔离级别(Transaction isolation levels)5
- const 指针_C语言学习日记(11)——const与指针
- TensorFlow 学习初步-环境搭建
- 二叉树 查找失败 asl_算法——二分搜索amp;折半查找
- 如何快速成为C++工程师?
- dart 语言中的列表(List)
- SQLSERVER不同数据库联表查询
- 爆强的一句话,工作之余放松放松!
- 功能测试基础之业务流程测试
- DCDC的PCB布局常见错误及避免方式
- 使用JavaScript实现省市县三级联动
- python调用pyd_使用python pyd时出错
- Latex 插入的图片紧跟当前文字
- 适合编程初学者的开源项目:小游戏2048(微信小程序版)