对于IPv4地址,inet_pton的第一个参数应该是AF_INET,第二个参数是一个以点分割的十进制字符串,例如"192.168.1.1"。对于IPv6地址,inet_pton的第一个参数应该是AF_INET6,第二个参数是一个IPv6地址的字符串表示,例如"2001:0db8:85a3:0000:0000:8a2e:0370:7334"。 该函数会将转换后的二进制形式的IP地址存储...
char str[INET_ADDRSTRLEN]; ptr = inet_ntop(AF_INET, &foo.sin_addr, str, sizeof(str)); 代替代码 ptr = inet_ntoa(foo.sin_addr); 下面给出只支持IPv4的inet_pton函数的简单定义和只支持IPv4的inet_ntop函数的简化版本。 int inet_pton(int family,constchar *strptr,void *addrptr) { if(family...
int inet_pton(int af, const char *src, void *dst); //这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中 inet_pton是inet_addr的扩展,支持的多地址族有下列: af = AF_INET src为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址转换为in_addr的结构...
int inet_pton(int af, const char *src, void *dst); 1. //这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中 1. inet_pton是inet_addr的扩展,支持的多地址族有下列: af = AF_INET src为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址转换为in_...
inet_pton函数 将点分十进制串转换成网络字节序二进制值,此函数对IPv4地址和IPv6地址都能处理。 int inet_pton(int family,const char * strptr,void * addrptr); //返回:1---成功 0---输入不是有效的表达格式 -1---失败 第一个参数可以是AF_INET或AF_INET6:第二个参数是一个指向点分十进制串的指...
这两个函数的family参数既可以是AF_INET(ipv4)也可以是AF_INET6(ipv6)。如果,以不被支持的地址族作为family参数,这两个函数都返回一个错误,并将errno置为EAFNOSUPPORT. inet_pton函数尝试转换由strptr指针所指向的字符串,并通过addrptr指针存放二进制结果,若成功则返回值为1,否则如果所指定的family而言输入字符串...
inet_pton 是inet_addr的扩展,支持的多地址族有下列:af = AF_INETsrc为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址转换为in_addr的结构体,并复制在*dst中。af = AF_INET6src为指向IPV6的地址,函数将该地址转换为in6_addr的结构体,并复制在*dst中。
AF_INET6Family参数时,此缓冲区的大小应足以容纳IN6_ADDR结构。 返回值 如果未发生错误,InetPton函数将返回值 1,并且 pAddrBuf参数指向的缓冲区包含网络字节顺序中的二进制数字 IP 地址。 如果pAddrBuf参数指向的字符串不是有效的 IPv4 点十进制字符串或有效的 IPv6 地址字符串,则 InetPton函数将返回值 0。 否...
示例2: Inet_pton ▲点赞 7▼ void*thread_send_query(void*arg){intfd;structsockaddr_incliddr,servddr;char*ip ="127.0.0.1";charbuf[1000] = {0}; cliddr.sin_family = AF_INET;Inet_pton(AF_INET,ip,&cliddr.sin_addr);//随机端口cliddr.sin_port = htons(0); ...