Sockets 运行IPV6套接字程序的规范

Sockets 运行IPV6套接字程序的规范,sockets,ipv6,Sockets,Ipv6,我正在Solaris上运行我的程序。 我是否需要将我的计算机配置为使用IPV6 API运行套接字程序。 IPV6 API是否向后兼容? 例如,我可以将AF_INET6用于两种协议IPV4 n 6吗?否,您不能设置操作系统选项来控制该行为。必须专门编写应用程序代码以使用IPv6 API并区分IPV4和IPv6连接 不,IPv6 API不向后兼容。AF_INET特定于IPv4,而AF_INET6特定于IPv6。但是,许多IPv4 API函数和结构已更新以支持IPv6,并且引入了一些新的API函数和结

我正在Solaris上运行我的程序。 我是否需要将我的计算机配置为使用IPV6 API运行套接字程序。 IPV6 API是否向后兼容?
例如,我可以将AF_INET6用于两种协议IPV4 n 6吗?

否,您不能设置操作系统选项来控制该行为。必须专门编写应用程序代码以使用IPv6 API并区分IPV4和IPv6连接


不,IPv6 API不向后兼容。AF_INET特定于IPv4,而AF_INET6特定于IPv6。但是,许多IPv4 API函数和结构已更新以支持IPv6,并且引入了一些新的API函数和结构,它们以一种更不可知的方式支持这两种协议。

可能会有所帮助。因此,你的意思是说,如果我想对代码进行更改以支持IPV4和6,那么我应该在某些地方设置if-else条件,是的。另一方面,根据目标平台的不同,IPv6可能会安装,也可能不会安装,因此您应该在需要时动态加载相关的IPv6 API函数,并在可用时更新代码以使用较新版本的不可知函数。例如,使用较新的
getaddrinfo()
函数代替较旧的
gethostby…()
getaddrby…()
函数,并直接使用
SOCKADDR\u存储
结构而不是
SOCKADDR\u in
SOCKADDR\u in 6