将字符串信息转化为网络字节序的整数型
sockaddr_in中保存的地址信息的成员为32位整型,因此,为了分配IP地址,需要将其表示为32位整数型数据,这对于只熟悉字符串信息的我们来说并非易事。幸运的是,有个函数,会帮我们将字符串形式的IP地址转换成32位整数型数据。此函数在转换类型的同时进行网络字节序的转换。
#include <apra/inet.h>
in_addr_t inet_addr(const char * string); //成功时返回32位大端序整数类型,失败时返回INADDR_NONE;
如果向该函数传递类似“211.214.107.99”的点分十进制格式的字符串,他会将其转换为32位的整数型数据并返回,而且也可以检测无效的IP地址。比如如果输入的字符串位“1.2.3.256”将会报错。
还有另外的一个函数,inet_aton,此函是与inet_addr函数在功能上相同,只不过该函数利用了in_addr结构体,且其使用频率较高。
#include <apra/inet.h>
int inet_aton(const char * string ,struct in_addr * addr); //成功时返回1,失败时返回0.
还有另外一个与函数inet_aton正好相反的函数,此函数可以吧网络字节序整数型IP转化为我们熟悉的字符串形式。
#include <apra/inet.h>
char *inet_ntoa(struct in_addr adr); //成功时返回转换的字符串地址值,失败时返回-1;