【问题标题】:Specifications to run IPV6 socket program运行 IPV6 套接字程序的规范
【发布时间】:2011-05-01 21:40:08
【问题描述】:

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

【问题讨论】:

标签: sockets ipv6


【解决方案1】:

不,您不能设置操作系统选项来控制该行为。必须专门编写应用程序代码以使用 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_STORAGE 结构而不是 sockaddr_insockaddr_in6
猜你喜欢
  • 2011-08-19
  • 1970-01-01
  • 2020-12-26
  • 2012-11-05
  • 2017-04-14
  • 1970-01-01
  • 2015-02-01
  • 2021-12-01
  • 1970-01-01
相关资源
最近更新 更多