Bawiłem się gniazdami na komputerze lokalnym bez połączenia sieciowego. Zobacz poniżej:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
Więc jaki jest dokładnie ::1
adres IP? Czy jest to domyślny dostępny adres IP, czy jest to adres sprzężenia zwrotnego? co dzieje się z powyższym kodem (linią roboczą) na maszynie z dedykowanym adresem IP i połączeniem sieciowym?
EDYTOWAĆ:
dokładny kod służy do wiązania określonego adresu IP z gniazdem. Oto ona:
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
jest naprawdę IPAddress.Parse
, prawda?
IPAddress.Any
jest::0
, należy używaćIPAddress.Loopback
do połączenia lokalnego (pętli zwrotnej).