Linux网络编程基础( 二 )
返回值:转换成功,返回一个字符指针,否则返回NULL;
文章插图
2.4 字节序
不同的CPU采用对变量的字节存储顺序可能不同 。
常用的X86结构是小端模式,很多的ARM,DSP都为小端模式,即内存的低地址存储数据的低字节,高地址存储数据的高字节 。
而KEIL C51则为大端模式,内存的高地址存储数据的低字节,低地址存储数据高字节 。
对于网络传输来说,数据顺序必须是一致的,网络字节顺序采用大端字节序方式 。
下面是四个常用的转换函数:
主机转网络:
htons()函数:
所需要头文件:
#include <netinet/in.h>
函数格式:unsigned short int htons(unsigned short int hostshort)
函数功能:将参数指定的16位主机(host)字符顺序转换成网络(net)字符顺序;hostshort:待转换的16位主机字符顺序数返回值:返回对应的网络字符顺序数;- htonl()函数:
所需要头文件:
#include <netinet/in.h>
函数格式:unsigned long int htons(unsigned long int hostlong)
函数功能:将参数指定的32位主机(host)字符顺序转换成网络(net)字符顺序;hostlong:待转换的32位主机字符顺序数返回值:返回对应的网络字符顺序数;网络转主机:
- ntohs()函数:
所需要头文件:
#include <netinet/in.h>
函数格式:unsigned short int ntohs(unsigned short int netshort)
函数功能:将参数指定的16位网络(net)字符顺序转换成主机(host)字符顺序;netshort:待转换的16位网络字符顺序数返回值:返回对应的主机字符顺序数;
- ntohl()函数:
所需要头文件:
#include <netinet/in.h>
函数格式:unsigned long int ntohl(unsigned long int netlong)
函数功能:将参数指定的32位网络(net)字符顺序转换成主机(host)字符顺序;
netshort:待转换的32位网络字符顺序数
返回值:
返回对应的主机字符顺序数;
推荐阅读
- 3分钟短文 | Linux 使用curl发起post请求的4个常用方式
- C++ socket网络编程——即时通信系统
- 使用 Mailmerge 发送定制邮件 | Linux 中国
- CentOS7.3 Linux系统搭建VPN服务器之PPTP
- Linux 在深度系统上添加硬盘并分区
- Linux Shell工具之 sed/awk
- 从病毒到“基础软件污染”,Linux 真的安全吗?
- 贡眉基础知识,白茶之贡眉的简介
- 嵌入式Linux编程 #define 宏的高级用法
- Linux cut 命令详解