htonl(), ntohl(), htons(), ntohs() 函数
转自:http://www.cnblogs.com/s7vens/archive/2011/12/12/2284892.html
在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"
之所以需要这些函数是因为计算机数据表示存在两种字节顺序:NBO与HBO
网络字节顺序NBO(Network Byte Order): 按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。
主机字节顺序(HBO,Host Byte Order): 不同的机器HBO不相同,与CPU设计有关,数据的顺序是由cpu决定的,而与操作系统无关。
如 Intel x86结构下, short型数0x1234表示为34 12, int型数0x12345678表示为78 56 34 12
如 IBM power PC结构下, short型数0x1234表示为12 34, int型数0x12345678表示为12 34 56 78
由于这个原因不同体系结构的机器之间无法通信,所以要转换成一种约定的数序,也就是网络字节顺序,其实就是如同power pc那样的顺序. 在PC开发中有ntohl和htonl函数可以用来进行网络字节和主机字节的转换.
htonl(), ntohl(), htons(), ntohs() 函数相关推荐
- htonl(), ntohl(), htons(), ntohs() 函数具体应用
htons和htonl函数具体应用 htons和htonl函数,是用来将主机字节顺序转换为网络字节顺序 在进行网络抓包时,抓到的包的数据是网络字节顺序,在进行编程时,要进行主机字节顺序和网络字节顺序间 ...
- htonl ntohl htons ntohs
在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题. 这时就可能用到htons(), ntohl(), ntohs(),htons()这4个网络字节顺序与本地字节顺序之间的转换函数 ...
- 【PackUnPack】htonl、htons、ntohl、ntohs函数实现
网络字节序是大端 参考: htonl.htons.ntohl.ntohs函数实现 判断是大端还是小端 小端时,(ENDIANNESS=='l') static union { char c[4]; u ...
- 模拟htonl、ntohl、htons、ntohs函数实现
模拟htonl.ntohl.htons.ntohs函数实现 2010-04-14 17:25:06| 分类: 网络编程 | 标签: |字号大中小 订阅 From: http://wxxweb.bl ...
- Linux网络通信----htonl()、htons()、ntohl()、ntohs()四个函数
转载:https://blog.csdn.net/miao19920101/article/details/69398158 前言: 今天在工作中用到htonl()这个函数,不是很理解,查阅资料之后随 ...
- htonl、ntohl、htons、ntohs函数实现
转载:https://blog.csdn.net/lizhi200404520/article/details/7290193 因为,有符号数右移会发送补符号位1的情况,所以,以下会对原数强制类型转换 ...
- htons、htonl、ntohl、ntohs的区别与使用
文章目录 1.网络编程字节转换 2. 主机字节顺序<-->网络字节顺序 3.大小端模式 1.网络编程字节转换 s表示短.l表示长: ntohs =net to host short int ...
- 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)
from https://blog.csdn.net/baidu_33621692/article/details/53213002 网络字节顺序和主机字节顺序的转换(htons ntohs hto ...
- ntohs, ntohl, htons,htonl
ntohs, ntohl, htons,htonl的比较和详解 在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题. 这时就可能用到htons(), ntohl(), ntohs( ...
最新文章
- 带你100% 地了解 Redis 6.0 的客户端缓存
- [TypeScript] Using Interfaces to Describe Types in TypeScript
- JS操作DOM元素属性和方法
- Java基础:动态代理
- Zookeeper 服务注册与发现02——服务消费者
- python装饰器执行顺序
- 阿里云服务器(windows2012)
- 运行Myeclipse时,如何删除IVM窗口
- 2_C语言中的数据类型 (一)2.1.常量和字符串常量
- smart原则_真正的有效目标--SMART原则
- 谷歌浏览器开发者模式
- 74hc595数码管C语言,74HC595 数码管程序
- 华为ENSP进行evn实验,尚不完整,但已经有RT1、RT2、RT3、RT4了
- IDEA 设置终端管理员权限
- 基于FPGA的目标颜色识别追踪三——FIFO(同/异步FIFO)、DDR3
- 保险公司免费赠送保险可信吗?
- 2017风口之变:创业者的焦虑与希望
- 爬取了知乎2.2亿阅读量 有漂亮女朋友是什么体验,结果发现...
- XCTF mobile新手区解题记录(WP)以及一些总结和思考
- python短信验证码登录_玩转python之获取短信验证码
热门文章
- Primefaces dataTable设置某个cell的样式问题
- .典型用户 - 场景
- python 怎么算l2范数_数学推导+纯Python实现机器学习算法13:Lasso回归
- java response 获得code_Java教程分享使用HttpClient抓取页面内容
- java 英文字符串排序_英文字符串排序算法
- python基本运算符_06-Python基础知识学习---基本运算符
- lgg6可以root的版本_Kali Linux 2020.1版本变更内容
- uC/OS-II OS_TASK.C中有关任务管理的函数
- 【视觉项目】【day4】8.24号实验记录(消除瓶子内部“边缘”)
- python 示例_带有示例的Python date isocalendar()方法