【发布时间】:2011-12-30 06:42:53
【问题描述】:
来自Beej's Guide to Network programming
您可以在 ai_family 字段中强制它使用 IPv4 或 IPv6,或者将其保留为 AF_UNSPEC 以使用任何内容。这很酷,因为您的代码可以与 IP 版本无关。
正如标题所说 - 始终使用 AF_UNSPEC 而不是指定 IPv4 或 IPv6 会有什么缺点(或风险,如果有的话)?
或者仅出于一个原因 - 如果指定了版本,这将保证仅支持此版本?
一点背景知识 - 我考虑在客户端-服务器 (C++) 应用程序中添加对 IPv6 的支持,这两个版本都应该支持。所以我想知道使用AF_UNSPEC是否可以,或者最好从字符串中“识别”地址并使用AF_INET6或AF_INET,具体取决于地址。
【问题讨论】:
标签: c++ c sockets unix network-programming