//h=host=主机字节序 n=network=网络字节序
//主机转网络
uint16_t htons(uint16_t);
uint32_t htonl(uint16_t);
//网络转主机
uint16_t ntohs(uint16_t);
uint32_t ntohl(uint16_t);
int inet_aton(const char *IP, struct in_addr *addr);//将一个字符串表示的点分十进制IP地址IP转换为网络字节序存储在addr中,并且返回该网络字节序表示的无符号整数。
char *inet_ntoa(struct in_addr in);//将一个网络字节序的IP地址(也就是结构体in_addr类型变量)转化为点分十进制的IP地址(字符串)。
in_addr_t inet_addr(const char *cp);//将一个字符串表示的点分十进制转化为网络字节序返回
//随着ipv6出现的新函数,兼容ipv4(网络字节序结构体在ipv4是in_addr,ipv6是in6_addr)
int inet_pton(int af, const char *src, void *dst);//将一个字符串表示的点分十进制转化为网络字节序
/*
af:地址簇,可选项:AF_INET(IPv4);AF_INET6(IPv6);
src:传入的IP地址
dst:将ip地址转换成网络字节序后的结果存储在dst指向的 struct in_addr 结构体中 s_addr 成员
*/
//将一个网络字节序字转化为符串表示的点分十进制
const char *inet_ntop(int af, const void *src,char *dst, socklen_t size);
/*
af 同上;
src:传入的网络字节序;
dst:传出的IP地址;
size:IP地址长度
*/