Java 连接超时。为什么?

Java 连接超时。为什么?,java,Java,当我运行此代码时,会出现异常。为什么? 线程“main”java.net.ConnectException中出现异常:连接超时:连接 例外情况: Exception in thread "main" java.net.ConnectException: Connection timed out: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.

当我运行此代码时,会出现异常。为什么?

线程“main”java.net.ConnectException中出现异常:连接超时:连接

例外情况:

Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:525)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
    at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
    at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl.getInputStream(HttpsURLConnectionOldImpl.java:204)
    at java.net.URL.openStream(URL.java:1010)
    at https.ssl.MainClass.main(MainClass.java:13)
线程“main”java.net.ConnectException:连接超时:连接 位于java.net.PlainSocketImpl.socketConnect(本机方法) 位于java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) 位于java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) 位于java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) 位于java.net.socksocketimpl.connect(socksocketimpl.java:366) 位于java.net.Socket.connect(Socket.java:525) 位于com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550) 位于com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141) 位于sun.net.NetworkClient.doConnect(NetworkClient.java:163) 位于sun.net.www.http.HttpClient.openServer(HttpClient.java:394) 位于sun.net.www.http.HttpClient.openServer(HttpClient.java:529) 在sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:272) 位于sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329) 位于sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172) 位于sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801) 位于sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158) 位于sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049) 位于com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl.getInputStream(HttpsURLConnectionOldImpl.java:204) 位于java.net.URL.openStream(URL.java:1010) 位于https.ssl.MainClass.main(MainClass.java:13)
你应该看的东西:

  • 你能
    ping
    主机吗
  • 你能连接到
    http://www.verisign.com
    是否使用web浏览器
  • 你能连接到
    https://www.verisign.com
    是否使用web浏览器
  • 你能连接到
    http://www.verisign.com
    是否使用您的程序
  • 你能用你的程序连接到任何东西吗

您的问题很可能与防火墙有关。我的第一个猜测是,您没有设置正确的环境变量或Java系统属性来告诉JVM使用本地代理服务器来发送HTTP/HTTPS请求。

那么您以前自己采取了哪些步骤来解决这个问题呢?我认为您的连接超时了。对我来说,这就是它的样子。只需ping一下站点,看看你是否可以连接,或者连接需要花费很多时间。
Exception in thread "main" java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:525)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
    at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
    at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl.getInputStream(HttpsURLConnectionOldImpl.java:204)
    at java.net.URL.openStream(URL.java:1010)
    at https.ssl.MainClass.main(MainClass.java:13)