网络编程基础(2)-如何进行字节序转换?(保姆级教程)

本文详细介绍了在网络编程中如何通过`arpa/inet.h`库中的htonl、ntohl、htons和ntohs函数进行字节序转换,包括主机字节序与网络字节序的概念,以及函数在处理不同字节序时的自动转换机制。
摘要由CSDN通过智能技术生成

上一篇文章详细的介绍了在网络编程过程中为什么要进行字节序转换,以及为什么要统一使用大端字节序?想要了解的伙伴可以点击该链接https://blog.csdn.net/shnhe/article/details/135141058?spm=1001.2014.3001.5501。那么在这篇文章中我们将详细的介绍如何进行字节序转换。

俗话说的好,我们不生产知识,我们只是知识的搬运工。所以啦,大家觉得如何进行字节序转换呢,那当然是调用我们伟大的库函数啦哈哈。话不多说直接上库。

在使用字节序转换的函数时,需要先包含一个头文件:

#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);

其中htonl中h代表host,为主机字节序的意思,n代表network,为网络字节序的意思,中间的to代表转换的意思,l代表的是32位长整数,一般对应的参数为IP地址。另外s代表的是16位短整数,一般对应的参数为端口号。

这里需要着重解释一下新词语主机字节序和网络字节序。网络字节序就是我们所讲的大端字节序,而主机字节序可能会分为两种情况:大端字节序和小端字节序。上述的字节序转换函数会自动对主机字节序进行检测,如果为小端字节序,那么就会转换为大端字节序,若为大端字节序,则不会转换(PS:因为在网络编程基础中统一要求使用大端字节序)。

好了这期干货就分享到这里啦,相信大家已经对字节序转换有了初步的了解,我会持续更新网络编程的一些基础知识,谢谢各位观众老爷的支持和观看,我们下一篇文章见!

  • 26
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值