嗯,有一帮socket达人在宣扬:同时支持v4和v6的正确方法,是同时listen两个socket,分别绑定到v4和v6的地址上,而不是像现在这样绑定到v6的any地址。
而达人们对正确性的解释是:有些操作系统(如Windows)不支持用一个socket同时接收v4和v6报文,所以一个“正确的”跨平台socket程序应该绑定多个socket。
所以以后Debian可能默认把内核参数net.ipv6.bindv6only设为1,程序要想支持双栈,要么管理员手动把sysctl的值改成0,要么在代码里调用setsockopt IPV6_V6ONLY = 0,要么就修改成同时绑定多个socket的方法(就不能写成阻塞模式了,要select/poll)
【 在 ilylx (ilylx) 的大作中提到: 】
: 不能同时绑定v4和v6?
--
修改:lynch FROM 111.193.190.*
FROM 111.193.190.*