pad*_*dis 10 java networking routing
我正进入(状态
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:564)
at sun.reflect.GeneratedMethodAccessor638.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)
at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(SSLProtocolSocketFactory.java:130)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
Run Code Online (Sandbox Code Playgroud)
贾瓦多克说
表示尝试将套接字连接到远程地址和端口时发生错误.通常,由于中间防火墙或中间路由器关闭,无法访问远程主机.
这是客户端或远程端的错误,还是它们中的任何一个?
基本上它表示您的客户端无法连接到服务器,因为客户端计算机无法访问该地址.
请检查您要连接的地址是否可通过命令提示符(Windows)或终端(基于Unix)中的ping命令访问:
ping <address>
Run Code Online (Sandbox Code Playgroud)
或者如果它是Web服务器,您可以尝试在Web浏览器中进行检查.
在大多数情况下,ping命令对我很有帮助,因为我知道为什么我无法连接到该地址.它可能是一个错误的地址,或者像javadoc建议的那样,防火墙问题.
ping 可能会提供响应,但应用程序可能仍无法连接。如果是这种情况,我建议使用 telnet 尝试使用所需端口连接到主机,telnet host.address port
如果连接被拒绝,则需要允许主机上的端口。它成功了,但应用程序仍然无法连接: