Ich habe mit Sockets auf einem lokalen Computer ohne Netzwerkverbindung gespielt. Siehe unten:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
Was genau ist die ::1
IP-Adresse? Ist es die standardmäßig verfügbare IP-Adresse oder die Loopback-Adresse? Was passiert mit dem obigen Code (Arbeitszeile) auf einem Computer mit dedizierter IP-Adresse und Netzwerkverbindung?
BEARBEITEN:
Der genaue Code wird verwendet, um eine bestimmte IP-Adresse an den Socket zu binden. Hier ist es:
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
wirklich IPAddress.Parse
richtig ist?
IPAddress.Any
ist::0
, Sie solltenIPAddress.Loopback
für lokale (Loopback-) Verbindung verwenden.