对于现代操作系统,双栈[1] IPv6套接字可以完成所有工作 .
但是,Windows XP仍然被中国很多人使用,我们不能忽视Windows XP的支持 . 不幸的是,Windows XP不支持双栈IPv6套接字 . [2]
所以我的方法是:
-
尝试创建IPv6套接字并将其设置为双栈 .
-
如果成功,请继续使用它 .
-
如果失败,请关闭IPv6套接字(如果存在),然后创建IPv4套接字 .
我走对了路吗?我假设没有人使用仅支持IPv6的Windows与Windows XP连接 .
[1]:调用setsockopt,IPV6_V6ONLY = 0 .
[2]:没有Service Pack的Windows XP不支持IPv6 . Windows XP Service Pack> = 1支持没有双栈的IPv6 .