Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets IPv6:Is`:';相当于“0.0.0.0';当监听连接时?_Sockets_Ipv6 - Fatal编程技术网

Sockets IPv6:Is`:';相当于“0.0.0.0';当监听连接时?

Sockets IPv6:Is`:';相当于“0.0.0.0';当监听连接时?,sockets,ipv6,Sockets,Ipv6,当我检查的输出时,我在0.0.0.0以及:上看到侦听器 我相信监听0.0.0.0上的端口等同于监听任何网络适配器上的端口,至少我对Windows socket API的记忆中是这样说的 对我来说,::在IPv6术语中意味着等效,因此[:]:49156上的侦听器将在所有IPv6网络适配器上侦听端口49156,其中as[::1]:1434将仅在IPv6环回适配器上侦听端口1434 这是正确的吗 我假设IPv6侦听端点仅适用于IPv6适配器。也就是说,如果适配器只有IPv4地址,那么[:]:49156

当我检查的输出时,我在
0.0.0.0
以及
上看到侦听器

我相信监听
0.0.0.0
上的端口等同于监听任何网络适配器上的端口,至少我对Windows socket API的记忆中是这样说的

对我来说,
::
在IPv6术语中意味着等效,因此
[:]:49156
上的侦听器将在所有IPv6网络适配器上侦听端口
49156
,其中as
[::1]:1434
将仅在IPv6环回适配器上侦听端口
1434

这是正确的吗

我假设IPv6侦听端点仅适用于IPv6适配器。也就是说,如果适配器只有IPv4地址,那么
[:]:49156
上的侦听器将不会接收到与它的端口
49156
的连接

另外,是否有人注意到
GetActiveTcpListeners()
的MSDN文章错误地声明了返回的对象“包括除侦听状态之外的所有TCP状态的侦听器。”?

IPv6地址::“未明确指定,不是有效地址,也不等同于IPv4地址“0.0.0”。见:


虽然你的措辞有误导性,而且到目前为止是错误的,但我认为你的意思是说对了:未指明的地址
0:0:0:0:0
a.k.a.
::
意味着相应的端口没有监听特定的地址,而是监听所有的地址-基本上与IPv4中
0.0.0
所说的相同

我相信监听
0.0.0.0
上的端口等同于监听任何网络适配器上的端口,至少我对Windows socket API的记忆中是这样说的

这是正确的
0.0.0.0
定义为
INADDR\u ANY
,可用于侦听所有本地IPv4适配器

对我来说,
::
在IPv6术语中意味着等效,因此
::49156
上的侦听器将侦听所有IPv6网络适配器上的端口
49156
,其中as
::1:1434
将仅是IPv6环回适配器上的端口1434

从倾听的角度来看,是的
定义为
INADDR6\u ANY
,可用于侦听所有本地IPv6适配器<代码>::1定义为
INADR6\u环回

我假设IPv6侦听端点仅适用于IPv6适配器。也就是说,如果适配器只有IPv4地址,那么
::49156
上的侦听器将不会接收到与它的端口
49156
的连接


这取决于听众。仅IPv6侦听器无法在IPv4适配器上侦听,也无法接受IPv4客户端。但是,绑定到
INADDR6\u ANY
的侦听器可以绑定到IPv4和IPv6适配器并同时接受IPv4和IPv6客户端,其中IPv4地址由
accept()
wsaaaccept()
getpeername()
as报告。

在Linux上,这仅由setsockopt
IPv6\u v6
控制,请参见手册页。也可在Windows上查看。参见。在IPv4中,0.0.0.0是“未指定地址”(RFC1122),其含义和目的与:“或”::0”基本相同。
2.5.2 The Unspecified Address

The address 0:0:0:0:0:0:0:0 is called the unspecified address.  It
must never be assigned to any node.  It indicates the absence of an
address.  One example of its use is in the Source Address field of
any IPv6 packets sent by an initializing host before it has learned
its own address.`

The unspecified address must not be used as the destination address
of IPv6 packets or in IPv6 Routing Headers.  An IPv6 packet with a
source address of unspecified must never be forwarded by an IPv6
router.