4

在应用程序中实现之前,我为双栈编写了两个服务器程序。

  1. 双栈服务器程序,可以接受具有单个 IPv6 接口的 IPv6 和 IPv4 客户端。但是 IPv4 重新用作映射的 IPv6 地址。

  2. 具有两个接口的双栈服务器程序正在监听,以便分别处理 IPv6 和 IPv4 客户端,如用于 IPv6 客户端的 IPv6 接口和用于 IPv4 客户端的 IPv4 接口,其中不涉及 IPv4 客户端向服务器请求的 IPv4 映射地址。

两者都工作正常。但是因为我只需要使用一种服务器模型来构建我的服务器应用程序。那么,如果有其他更好的模型,哪一个更可取,甚至建议我。?

IPv4 映射的 IPv6 地址是否会在未来产生任何问题。?

谁能帮帮我吗。在此先感谢您的帮助。(在 Linux 2.6.9 环境中工作并使用 C 进行网络编程。)

4

2 回答 2

2

如果您可以使用 IPv6 完成所需的一切,那么我认为选项 1 会容易得多。你的代码会更干净,维护也会更容易。如果您依赖它,您可能希望在代码中将 IPV6_V6ONLY 标志显式设置为 0,以防系统管理员更改默认行为。

于 2013-03-14T15:25:16.883 回答
0

第二种方法是最便携的。例如,OpenBSD 不允许在 IPv6 套接字上使用传入的 IPv4 流量,无论IPV6_ONLY选项如何。

于 2021-01-25T18:36:18.493 回答