我有一个只接受localhost连接的ipv4服务器(使用INADDR_LOOPBACK
)。我想将此服务器转换为双栈ipv6 / ipv4。但是,使用in6addr_loopback
仅接受与::1
的连接。
我发现我可以使用in6addr_any
同时接受ipv4和ipv6连接,但是因为这也允许来自任何地方的连接,这对我的特定情况没用。
是否可以同时绑定到ipv6 localhost(::1
)和ipv4 localhost(127.0.0.1
)?
答案 0 :(得分:4)
AFAIK,这是不可能的。
您需要做的是创建两个套接字,一个绑定到INADDR_LOOPBACK,另一个绑定到in6addr_loopback。然后,您可以使用您选择的多路复用器(poll,select,epoll等)同时等待它们。
<强>更新强>
刚刚提出了一些你可能想要考虑的解决方法。在这两种解决方法中,您都绑定到in6addr_any
。
答案 1 :(得分:-4)
仅仅因为您的服务器是双栈,您的localhost专用应用程序真的需要吗?你能选择一个并随身携带吗?