ฉันกำลังเล่นกับซ็อกเก็ตบนเครื่องท้องถิ่นโดยไม่มีการเชื่อมต่อเครือข่าย ดูด้านล่าง:
IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works
ที่อยู่::1
IP คืออะไร? เป็นที่อยู่ IP เริ่มต้นที่มีอยู่หรือเป็นที่อยู่ย้อนกลับ? จะเกิดอะไรขึ้นกับรหัสด้านบน (สายการทำงาน) บนเครื่องที่มีที่อยู่ IP เฉพาะและการเชื่อมต่อเครือข่าย
แก้ไข:
รหัสที่แน่นอนถูกใช้เพื่อผูกที่อยู่ IP เฉพาะกับซ็อกเก็ต นี่คือ:
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.Any
คือ::0
คุณควรใช้IPAddress.Loopback
สำหรับการเชื่อมต่อภายใน (ย้อนกลับ)