1、inet_ntoa
头文件:Winsock2.h
原型:char * inet_ntoa(struct in_addr in);
功能:将一个网络IP地址转换成一个互联网标准点分格式的字符串
The inet_ntoa function converts an (Ipv4) Internet network address into a string in Internet standard dotted format
2、inet_addr
头文件:Winsock2.h
原型:in_addr_t inet_addr(const char * strptr);
功能:若字符串有效,则将字符串转换为32位二进制网络字节序的IPv4地址,否则返回INADDR_NONE
struct in_addr{
in_addr_t s_addr;
}
inet_ntoa 与 inet_addr 互为反操作
举例:
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
char recvBuf[100];
char tempBuf[100];
sprintf(tempBuf,"%s say: %s",inet_ntoa(addrSrv.sin_addr),recvBuf);
//将sin_addr储存的IP(数值)转换成字符串形式(127.0.0.1)。
3、htons 和 htonl
htons 将一个16位数从主机字节顺序转换为网络字节顺序
htonl 将一个32位数从主机字节书序转换为网络字节顺序
4、ntohs 和 ntohl
ntohs 将一个16位数从网络字节顺序转换为主机字节顺序
ntohl 将一个32位数从网络字节顺序转换为主机字节顺序
PS:
网络字节顺序是TCP/IP中规定好的一种数据表示格式,与具体的CPU、操作系统无关,采用Big endian排序方式
不同的CPU有不同的字节序类型,这些字节序是指整数在内存中保存的顺序,称为主机序