字节序
一、地址转换API
//把字符串形式“127.0.0.1”转化为网络能识别的格式
int inet_aton(const char* straddr,struct in_addr *addrp);
eg:
inet_aton(“192.168.124.109”,&c_addr.sin_addr);
//把网络格式的IP地址转化为字符串形式
char* inet_ntoa(struct in_addr sin_addr);
eg:
inet_ntoa(caddr.sin_addr);
二、字节序转换API
#include<netinet/in.h>
extern uint32_t ntohl (uint32_t __netlong) //返回主机字节序uint32
extern uint16_t ntohs (uint16_t __netshort)//返回主机字节序uint16
extern uint32_t htonl (uint32_t __hostlong)//返回网络字节序的值
extern uint16_t htons (uint16_t __hostshort)//返回网络字节序的值
h 代表 host,n 代表 net,s 代表 short(两个字节16位)l 代表 long (4个字节 32位)
有时可以用 INADDR_ANY、INADDR_ANY 指定地址,让操作系统自己获取
注:
网络字节序都是BIG-ENDIAN