在socket编程中,int inet_pton(int af,const char * src,void * dst);

时间:2017-09-11 14:01:18

标签: sockets pointers

在套接字编程中,

int inet_pton(int af, const char *src, void *dst);

在这个函数中为什么目标地址是void类型指针。为什么不是int或char指针? 以及如何处理这个void类型指针。 我正在以这种方式访问​​,这是正确的

void *buf;
int a;
inet_pton(AF_INET,ip,buf);
printf("%s",(char*)buf);

1 个答案:

答案 0 :(得分:0)

此函数将网络地址的文本表示形式转换为IPv4或IPv6二进制地址,以便dst指向in_addrin6_addr

这是为了支持应用程序中的网络层可以是通用的并同时处理IPv4和IPv6协议的范例。此类应用程序会将网络地址存储在足以容纳in_addrin6_addr的存储空间以及地址系列中,例如:

struct generic_in_addr
{
    int af;
    union {
        in_addr v4;
        in6_addr v6;
    } addr;
};

并使用相同的多协议功能,例如socketconnectaccept传递网络地址及其系列和大小。

C中的通用网络编程。