gpt4 book ai didi

java - 没有到主机的路由 : connect

转载 作者:行者123 更新时间:2023-12-01 13:39:07 28 4
gpt4 key购买 nike

我从网站获取我的公共(public) IP,但有时我会收到此错误:

java.net.NoRouteToHostException: No route to host: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at Connection.getIp(Connection.java:86)
at Connection.setIP(Connection.java:31)
at Connection.connect(Connection.java:67)

我猜是因为系统还没有从网络上得到回复,无法继续,但我确信我错了..

为什么会发生这种情况?我该如何“修复”它?

public String getIp() throws IOException {
URL whatismyip = new URL("http://icanhazip.com");
BufferedReader in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
return in.readLine();
}

这是一种VPN管理系统,所以我可以重新连接并更改VPN的IP,但我需要检查IP是否已更改,这就是我的做法,并且此方法会出现错误:

public boolean connect() throws IOException, InterruptedException {
String ip = this.setIP();
if (ip != null) {
if (ip.equals(this.defaultIp)) {
System.out.println("equals");
previousIp = ip;
HMACommand.connect();
Thread.sleep(500);
while (ip.equals(this.defaultIp) || ip == null) {
if (ip == null) {
System.out.println("Is null");
return connect();
}
ip = this.setIP();
Thread.sleep(75);
}

return true;
}
else {
this.previousIp = ip;
HMACommand.reconnect();
Thread.sleep(500);
while (ip.equals(this.defaultIp) || ip.equals(this.previousIp) || ip == null) {
if (ip == null) {
return connect();
}
ip = this.setIP();
Thread.sleep(75);
}
return true;
}
}
else {
boolean flag = connect();
return (flag) ? flag : false;
}
}

最佳答案

看起来 Java 代码中没有问题。这更多是一个较低级别的网络和路由问题。首先使用系统级工具检查从您的计算机到该域名的路径。

关于java - 没有到主机的路由 : connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20983060/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com