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 ::1adres 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.Parsjest naprawdę IPAddress.Parse, prawda?
IPAddress.Anyjest::0, należy używaćIPAddress.Loopbackdo połączenia lokalnego (pętli zwrotnej).