2013-12-11 50 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