Estaba jugando con sockets en una máquina local sin conexión de red. Vea abajo:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
Entonces, ¿qué es exactamente ::1
la dirección IP? ¿Es la dirección IP disponible predeterminada o es la dirección de bucle invertido? ¿Qué sucede con el código anterior (línea de trabajo) en una máquina con dirección IP dedicada y conexión de red?
EDITAR:
El código exacto se utiliza para vincular una dirección IP específica al socket. Aquí está:
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
es realmente IPAddress.Parse
correcta.
IPAddress.Any
es decir::0
, debe utilizarIPAddress.Loopback
para la conexión local (bucle invertido).