Linux网络编程基础( 二 )


返回值:转换成功,返回一个字符指针,否则返回NULL;

Linux网络编程基础

文章插图
 
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位网络字符顺序数
返回值:
返回对应的主机字符顺序数;
 




推荐阅读