中的通用网络编程
在套接字编程中,
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_addr
或in6_addr
。
这是为了支持应用程序中的网络层可以是通用的,并同时处理IPv4和IPv6协议。这样的应用程序将将网络地址存储在in_addr
或in6_addr
的大小的存储中,例如:
struct generic_in_addr
{
int af;
union {
in_addr v4;
in6_addr v6;
} addr;
};
并将使用相同的多协议功能,例如socket
,connect
,accept
传递网络地址及其家庭和大小。
c。