最佳答案
我在没有网络连接的本地机器上使用套接字:
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);
}