Java教程示例代码抛出:java.net.SocketException:连接重置 - 导致它的原因是什么?

ach*_*ers 6 java exception

所以这是一个初学者的问题.

使用urls章节执行示例代码时,它会抛出:

线程"main" java.net.SocketException中的异常:java.net.SocketInputStream.read中的连接重置 (SocketInputStream.java:189)...

Origin是openStream()方法.

这是代码:

    import java.net.*;
    import java.io.*;

    public class URLReader {

       public static void main(String[] args) throws Exception {

          URL oracle = new URL("http://www.oracle.com/");
          BufferedReader in = new BufferedReader(
          new InputStreamReader(oracle.openStream()));

          String inputLine;
          while ((inputLine = in.readLine()) != null) {
             System.out.println(inputLine);
          }
          in.close();
       }
    }
Run Code Online (Sandbox Code Playgroud)

我知道有关于该主题的类似线程,但我找不到适合我的答案.

到目前为止我尝试过的:

  • 我按照此处的建议设置了代理主机 .命令是:java -Dhttp.proxyHost = dslb-088-071-100-199.pools.arcor-ip.net,我也尝试插入System.setProperty("http.proxyHost","dslb-088-071- 100-199.pools.arcor-ip.net"); 在URLReader类的第一行.
  • 我试过JSoup html解析器和
  • org.apache.commons.io.FileUtils.copyURLToFile(URL,File)方法有类似的结果.

无论我尝试什么,我总是得到同样的错误:30秒左右不会发生任何事情然后它抛出提到的SocketException.

我根本不知道如何继续解决这个问题.有用的是获取有关连接重置前30秒内背景中发生的情况的信息.

那么究竟是什么导致了这种异常呢?

最小的提示可以帮助你!谢谢!

Men*_*los 2

您的代码对于可以连接到互联网的 JVM 运行良好。

根据最初的问题和讨论:https://chat.stackoverflow.com/rooms/31264/discussion- Between-achingfingers-and-meewok 似乎:

  • 中间防火墙阻止 JVM 建立连接(或其他类似的网络问题)。
  • 操作系统防火墙防病毒软件也会导致问题。

我的建议是尝试:

  • 同一网络内不同计算机上的同一应用程序(以查看它是否特定于 PC)。
  • 不同网络上的同一个应用程序。