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



在套接字编程中,

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

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

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

此函数将网络地址的文本表示为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。

中的通用网络编程

最新更新