IPGlobalProperties.GetActiveTcpListeners()
の出力を調べると、_0.0.0.0
_および_::
_のリスナーが表示されます。
_0.0.0.0
_のポートをリッスンすることは、任意のネットワークアダプターのポートをリッスンすることと同等であると思います。少なくとも、WindowsソケットAPIの私のメモリはそうだと言っています。
_::
_はIPv6用語で同等のものを意味するので、_[::]:49156
_のリスナーは、_49156
_であるすべてのIPv6ネットワークアダプターのポート_[::1]:1434
_をリッスンします。 IPv6ループバックアダプターのみでポート_1434
_になります。
これは正しいです?
IPv6リッスンエンドポイントはIPv6アダプターにのみ適用されると思います。つまり、アダプターにIPv4アドレスしかなかった場合、そのポートへの接続_49156
_は、_[::]:49156
_のリスナーによって受信されませんか?
また、GetActiveTcpListeners()
に関するMSDNの記事で、返されたオブジェクトが「リスナーをすべてのTCP状態exceptリッスン状態。 "?
_
0.0.0.0
_のポートをリッスンすることは、任意のネットワークアダプターのポートをリッスンすることと同等であると思います。少なくとも、WindowsソケットAPIの私のメモリはそうだと言っています。
それは正しいです。 _0.0.0.0
_は_INADDR_ANY
_として定義され、すべてのローカルIPv4アダプターでlistenするために使用できます。
_
::
_はIPv6用語で同等のものを意味するので、_:::49156
_のリスナーは、_49156
_であるすべてのIPv6ネットワークアダプターのポート_::1:1434
_をリッスンします。 IPv6ループバックアダプターのみでポート1434になります。
聞くという観点から、そうです。 _::
_は_INADDR6_ANY
_として定義され、すべてのローカルIPv6アダプターでlistenするために使用できます。 _::1
_は_INADDR6_LOOPBACK
_として定義されます。
IPv6リッスンエンドポイントはIPv6アダプターにのみ適用されると思います。つまり、アダプターにIPv4アドレスしかなかった場合、そのポートへの接続_
49156
_は、_:::49156
_のリスナーによって受信されませんか?
それはリスナーに依存します。 IPv6のみのリスナーは、IPv4アダプターをlistenできず、IPv4クライアントを受け入れることができません。ただし、_INADDR6_ANY
_にバインドされた dual-stack リスナーは、IPv4およびIPv6アダプターにバインドして、IPv4アドレスとIPv6クライアントの両方を受け入れることができます。IPv4アドレスはaccept()
によって報告されます。 WSAAccept()
、およびgetpeername()
as IPv4-mapped IPv6 addresses 。
あなたの言い回しは誤解を招くものであり、今のところ間違っていますが、私はあなたが正しいことを言うつもりだと思います:不特定のアドレス0:0:0:0:0:0:0:0
別名::
は、それぞれのポートが特定のアドレスをリッスンしていないが、それらすべてをリッスンしていることを意味します。基本的に同じです0.0.0.0
IPv4の場合は言う。
IPv6アドレス「::」は特に指定されておらず、有効なアドレスでもありません。また、IPv4アドレス「0.0.0.0」と同等でもありません。 RFC 3513、インターネットプロトコルバージョン6(IPv6)アドレス指定アーキテクチャ、セクション2.5.2を参照してください :
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.