Я играл с сокетами на локальной машине без подключения к сети. Увидеть ниже:
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);
}
IPAddress.Pars
, действительно IPAddress.Parse
, верна?
IPAddress.Any
есть::0
, вы должны использоватьIPAddress.Loopback
для локального (петлевого) соединения.