我在没有网络连接的本地机器上玩套接字。见下文:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
究竟什么是::1
IP地址?它是默认的可用IP地址还是环回地址?具有专用IP地址和网络连接的计算机上面的代码(工作线)会发生什么?
编辑:
确切代码用于将特定IP地址绑定到套接字。这是:
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.BindIPEndPointDelegate = new BindIPEndPoint(Bind);
// here's the bind delegate:
private IPEndPoint Bind(ServicePoint sp, IPEndPoint ep, int retryCount)
{
return new IPEndPoint(IPAddress.Parse("::1"), 0);
}
答案 0 :(得分:123)
::1
是IPv6中的环回地址。可以将其视为127.0.0.1
的IPv6版本。
答案 1 :(得分:10)
只是为它添加更多信息,在IPv6中,环回地址表示为127个零,后跟1,即(0000 ... 127倍...... 1)。 它的表示应该是这样的 - > 0000:0000:0000:0000:0000:0000:0000:0001 但我们有一些简短的表格。如果单个块中存在全零,则可以将其替换为单个0.因此它变为 - >的 0:0:0:0:0:0:0:0001 即可。 我们再次看到我们有零运行,它们可以被淘汰而且我们得到了 - > :: 0001 - > :: 1 。