字节排序函数

某个给定系统所使用的字节序成为主机字节序(host byte order)
网络协议必须指定一个网络字节序(network byte order)
网际协议使用大端字节序

主机字节序和网络字节序的转换需要使用以下四个函数:
#include <netinet/in.h>
获取网络字节序的值:
  uint16_t htons(uint16_t host16bitvalue);
  uint32_t htonl(uint32_t host32bitvalue);
获取主机字节序的值:
  uint16_t ntohs(uint16_t net16bitvalue);
  uint32_t ntohl(uint32_t net32bitvalue);

inet_aton,inet_addr,inet_ntoa函数在点分十进制IP地址和32位网络字节序二进制之间进行IPv4的转换。
#include <arpa/inet.h>
int inet_aton(const char *strptr, struct in_addr *addrptr);
返回值:字符串有效为1,否则为0
in_addr_t inet_addr(const char *strptr);
返回值:如字符串有效则为32位二进制网络字节序的IPv4地址,否则为INADDR_NONE
char *inet_ntoa(struct in_addr inaddr);
返回值:指向一个点分十进制数串的指针

inet_pton和inet_ntop,这两个函数同时支持IPv4和IPv6。
#include <arpa/inet.h>
int inet_pton(int family, const char *strptr, void *addrptr);
返回值:成功返回1,出错返回-1,输入不是有效字符串返回0
const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len);
返回值:成功则为指向结果的指针,出错为NULL

你可能感兴趣的:(字节排序函数)