我正在尝试发送到在 Windows XP 上运行的 .NET 3.5 应用程序中的环回地址空间。代码做了一个简单的:
receiver = new IPEndPoint(IPAddress.Parse("127.0.0.2"), 8000);
sock.SendTo(data, len, SocketFlags.None, receiver);
当我运行代码时,出现无法访问的主机套接字异常。这对我来说似乎很奇怪,因为环回接口(interface)始终存在,并且它不应该生成任何无法访问的主机异常。
Windows 7 可以很好地执行代码,使问题变得更加奇怪。
所以 - 如果有人有任何关于在 XP 中运行它的提示,我将不胜感激。
编辑:
一些信息:
- 有东西在 127.0.0.2 上监听,我的 netstat 显示:
UDP 127.0.0.2:8000 : 5824
我运行的是XP SP3,我的测试机上没有防火墙
我注意到在 XP 上当我 ping 127.0.0.2 时,回复回来了:
Reply from 127.0.0.1
在 Windows 7 上,回复来 self ping 的地址:
Reply from 127.0.0.2
我认为这可能是问题所在,因此它并不是真正的编程问题,更多的是 XP 本身的问题...
-- 丹
最佳答案
它是否适用于 127.0.0.1
? The RFC说:
127.0.0.0/8
- This block is assigned for use as the Internet host loopback address. A datagram sent by a higher level protocol to an address anywhere within this block should loop back inside the host. This is ordinarily implemented using only127.0.0.1/32
for loopback, but no addresses within this block should ever appear on any network anywhere [RFC1700, page 5].
这似乎表明你不应该依赖 127.0.0.2
工作,除非你专门设置了一些东西。
关于c# - 发送数据到 127.* : Unreachable Host,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625083/