【发布时间】:2023-03-12 12:25:02
【问题描述】:
某些操作系统似乎不支持双堆栈套接字。我正在寻找一种可靠的方法来检测是否支持此功能。我目前的建议(尚未测试)是检查 setsockopt 的返回值以在我尝试将套接字置于双堆栈模式时关闭 IPV6_V6ONLY。您认为这可行还是有更好的解决方案?
谢谢
【问题讨论】:
-
什么是“所有”平台?此功能不在标准 C 中,因此我们需要明确哪些平台需要工作。
-
@JohnZwinck 感谢您的评论。我编辑了我的问题。
-
@Kaba,仍然不清楚 - 例如,setsockopt 并非在所有平台上都存在。覆盖所有平台的唯一方法是通读每个操作系统与底层硬件相关的文档并找到方法。
-
@JohnZwinck 双栈支持验证部分应该适用于Windows和POSIX操作系统(包括Unix、Mac OS X、Linux、Android和iOS)