我有一个使用ipv4编写的udp示例程序。如果我将代码改为ipv6,我仍然能够与使用ipv4地址的监听器进行通信吗?我正在考虑移植
的例子http://ou800doc.caldera.com/en/SDK_netapi/sockC.PortIPv4appIPv6.html
我不确定简单地改变代码是否会确保它有效或者我是否必须在双重堆栈模式下编写代码。
答案 0 :(得分:7)
是和否...... IPv6确实包含完全不同的寻址,因此您必须重新编写应用以使用备用标头和结构大小。
但是,IPv4地址范围在IPv6中可用,语法是在标准地址之前添加两个冒号(例如:: 10.11.12.13)。你也可以embed IPv4 addresses within IPv6 packets。
答案 1 :(得分:5)
在没有网络中IPv4/IPv6 gateway的帮助下,即使这样,通信也会受到网络地址转换网关引入的typical problems的限制。面对这样的决策的程序员的传统建议是建议同时支持IPv4和IPv6。
答案 2 :(得分:1)
IPv4和IPv6本质上是彼此不兼容的 一些基本原因:
这些显而易见的结果是,如果您打开IPv6套接字,则无法使用IPv4套接字来监听它。