2013-12-11 24 views
1

我们需要将IPv4套接字同时绑定到IPv4 & IPv6。 我想创建一个将绑定in6addr_any的服务器IPv6套接字。 据我所知,它可以处理IPv4请求,但我的问题是,我们提供了几个绑定选项,其中之一例如绑定到地址。Linux:in6addr_any并绑定到特定的IPv4地址

我们希望能够处理IPv4和IPv6请求,并且这可以通过仅使用一个套接字来完成。

它会在需要将套接字绑定到ipv4地址时发生变化吗? 我们是否需要打开新的ipv4套接字?

有什么建议如何支持它?

我希望我的问题有道理。 随时询问更多详细信息

+0

我正在读这篇文章。 我有一个关于绑定到地址的具体问题。 是否有可能重新使用套接字并将其绑定到2个地址? (1 ipv4和1 ipv6) – user2323711

回答

1

如果您使用V6ONLY=0创建IPv6套接字并绑定到通配符IPv6地址,则可以在该单个套接字上接受IPv4和IPv6连接。

如果你想绑定到显式地址,那么你需要多个套接字:每个地址一个。为您想要绑定的IPv4地址创建IPv4套接字,为IPv6地址创建IPv6套接字可能是最容易的,尽管您可以使用IPv6套接字来完成所有任务。

在最后一种情况下,您为每个IPv4地址创建一个包含V6ONLY=0的IPv6套接字并将其绑定到映射地址。对于IPv4地址aaa.bbb.ccc.ddd你会绑定到IPv6地址::ffff:aaa.bbb.ccc.ddd(如果您的实现接受这个符号),或者以::ffff:wwxx:yyzz,其中wwaaaxxbbb六角版本的十六进制表示,等

+0

谢谢,我将使用ipv4套接字所有ipv4流量和ipv6套接字与V6ONLY = 1到所有ipv6流量只。 – user2323711