Pue*_*tis 10 c++ ip-address ipv4 ipv6 boost-asio
简短而简单的问题:我是新手boost::asio,我想知道是否有可能同时tcp::acceptor监听IPv4和IPv6连接.关于boost主页的教程显示如下:
_acceptor = new tcp::acceptor(_ioService, tcp::endpoint(tcp::v4(), 3456));
Run Code Online (Sandbox Code Playgroud)
始终使用特定协议指定端点.是否无法同时在同一端口上侦听IPv4和IPv6?
Sha*_*ell 12
如果创建IPv6接受器,则在清除IPV6_V6ONLY套接字选项时,它将同时接受IPv4和IPv6连接.IPv4地址将以IPv4映射格式显示为IPv6地址.
问题主要出在IPV6_V6ONLY是否可用或默认值是什么(打开或关闭).所以我发现最好将它明确地设置为你想要的.
此外,Windows XP根本不支持该选项.
因此,如果您希望跨系统兼容,建议创建两个套接字,一个用于v4,另一个用于v6设置IPV6_V6ONLY.