我开始的时候认为htons和htonl可以只用htonl代替但是后来发现这个是错误,会导致服务器端和客户端连接不上。

下面就让我们看看他们:

htons

#include <arpa/inet.h> 
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相关推荐

  1. 【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& ...

  2. 网络字节顺序和主机字节顺序的转换(htons ntohs htonl ntohl)

    from  https://blog.csdn.net/baidu_33621692/article/details/53213002 网络字节顺序和主机字节顺序的转换(htons ntohs hto ...

  3. htons和htonl

    htons和htonl htons htons是将整型变量从主机字节顺序转变成网络字节顺序, 就是整数在地址空间存储方式变为高位字节存放在内存的低地址处. 网络字节顺序是TCP/IP中规定好的一种数据 ...

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

    文章目录 1.网络编程字节转换 2. 主机字节顺序<-->网络字节顺序 3.大小端模式 1.网络编程字节转换 s表示短.l表示长: ntohs =net to host short int ...

  5. htonl(), ntohl(), htons(), ntohs() 函数具体应用

    htons和htonl函数具体应用 htons和htonl函数,是用来将主机字节顺序转换为网络字节顺序 在进行网络抓包时,抓到的包的数据是网络字节顺序,在进行编程时,要进行主机字节顺序和网络字节顺序间 ...

  6. 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs

    Part 1: htons函数具体解释      在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序. 在Intel机器下,执行以下程序 i ...

  7. htonl,htons 和 ntohs相关问题

    htonl函数是一个网络转换的函数,他把不确定的一个32位数字,转换成网络通用的32位数字,即大头在后的方式. 我们一般使用的计算机都是大头在后,也就是高地址在后面的形式. 比如你定义一个整型变量 i ...

  8. 主机字节序与网络字节序的转换函数:htonl、ntohl、htons、ntohs【转】

    (转自:https://blog.csdn.net/kulala082/article/details/53431473) Part 1: htons函数具体解释 在Linux和Windows网络编程 ...

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

    在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数. 网络字节顺序与本地字节顺序之间的转 ...

最新文章

  1. IOS开发笔记15-自定义类
  2. [Skill]-Markdown编辑器技巧
  3. 三十四、Scrapy中的CrawlSpider
  4. vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用
  5. Java for LeetCode 061 Rotate List
  6. [css] 移动页面底部工具条有3个图标,如何平分?在设置边框后最后一个图标掉下去了怎么办?
  7. 事务的隔离级别(Transaction isolation levels)5
  8. const 指针_C语言学习日记(11)——const与指针
  9. TensorFlow 学习初步-环境搭建
  10. 二叉树 查找失败 asl_算法——二分搜索amp;折半查找
  11. 如何快速成为C++工程师?
  12. dart 语言中的列表(List)
  13. SQLSERVER不同数据库联表查询
  14. 爆强的一句话,工作之余放松放松!
  15. 功能测试基础之业务流程测试
  16. DCDC的PCB布局常见错误及避免方式
  17. 使用JavaScript实现省市县三级联动
  18. python调用pyd_使用python pyd时出错
  19. Latex 插入的图片紧跟当前文字
  20. 适合编程初学者的开源项目:小游戏2048(微信小程序版)

热门文章

  1. 对LBP与HOG的理解
  2. 画了张图,总结了机房里AAU、RRU以及各模块之间的走线关系和线束规格类型
  3. 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学实录
  4. 这应该是最全的软件测试工程师必读书籍
  5. MathType中的四则运算符号该怎样进行输入
  6. Labelme使用——数据集标注详解
  7. keil5 c语言运行
  8. Python技术项目实践
  9. Android USB 串口通信
  10. java数组显示_Java 1.5中显示数组