Ответ 1
::1
- это обратный адрес в IPv6. Подумайте об этом как о версии IPv6 127.0.0.1
.
Я играл с сокетами на локальной машине без сетевого подключения. См. Ниже:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
Так что же такое IP-адрес ::1
? Является ли это доступным по умолчанию IP-адресом или адресом обратной связи? что происходит с вышеуказанным кодом (рабочая строка) на машине с выделенным IP-адресом и сетевым соединением?
EDIT:
точный код используется для привязки определенного IP-адреса к сокету. Вот он:
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.BindIPEndPointDelegate = new BindIPEndPoint(Bind);
// here the bind delegate:
private IPEndPoint Bind(ServicePoint sp, IPEndPoint ep, int retryCount)
{
return new IPEndPoint(IPAddress.Parse("::1"), 0);
}
::1
- это обратный адрес в IPv6. Подумайте об этом как о версии IPv6 127.0.0.1
.
Чтобы добавить к нему немного информации, в петлевом адресе IPv6 представлен 127 нулей, за которыми следует 1 i.e(0000... 127 раз..1). Это представление должно было быть таким: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001, но для этого у нас есть короткое представление. Если в одном блоке есть все нули, вы можете заменить его на один 0. Таким образом, он становится → 0: 0: 0: 0: 0: 0: 0: 0001. Опять же, мы видим, что у нас есть пробеги нулей, их можно устранить, и мы получаем - > :: 0001 → :: 1.