【发布时间】:2014-06-25 05:08:27
【问题描述】:
我创建了一个套接字并将其绑定到 127.0.0.254,然后尝试使用
连接到 0.0.0.0 443 上的 httpListenersocket= new Socket();
socket.bind("127.0.0.254:0");
socket.connect("127.0.0.1",443);
连接失败,出现异常“No route to host” 不过,相同的代码块在 win 8 上运行良好。
附加信息:
我将它绑定到 0。我的问题是,我每 5 分钟探测一次侦听器以查看它是否启动。为此,我尝试将套接字绑定到 .254 地址,然后通过尝试连接的套接字地址确定它是探针还是真实的。这在 XP 上不起作用,因为套接字连接失败。但如果我不绑定,套接字将采用 127.0.0.1 地址,我无法区分。我的方案有什么解决方法吗?
【问题讨论】:
-
调用
socket.bind("127.0.0.254:0");是否成功?你测试它的失败结果吗?您呼叫bind()on 的机器是否有带有127.0.0.254的接口设置? -
绑定成功,没有错误,我检查了。仅当您将其连接到 127.0.0.1 443 地址时才会失败。位于 0.0.0.0 443 上的侦听器意味着它在同一端口上获取任何 ip。至少我认为它是这样做的。
标签: java sockets windows-xp