如何在BSD系统上设置仅IPv6套接字?解决SOL_IPV6缺失问题
跨平台设置IPv6_V6ONLY套接字选项的问题
我在监听套接字时,若用户指定使用IPv6,会用以下代码,这段代码在Linux上可正常运行:
setsockopt(listen_fd, SOL_IPV6, IPV6_V6ONLY, &one, sizeof(one));
但在OpenBSD或FreeBSD中不存在SOL_IPV6宏。Linux的ip(7)手册指出:
Using the SOL_IP socket options level isn't portable; BSD-based stacks use the IPPROTO_IP level.
我查阅了FreeBSD的ip(4)和setsockopt(2)手册,仍不清楚后续该如何修改代码。
内容的提问来源于stack exchange,提问作者Runxi Yu
相关产品推荐
相关产品推荐

