【问题标题】:java.net.SocketException: Software caused connection abort: connect [duplicate]java.net.SocketException:软件导致连接中止:连接[重复]
【发布时间】:2011-01-04 19:07:57
【问题描述】:

我正在尝试以编程方式 (Java) 打开指向网络上调制解调器的 URL。我已连接到网络,可以 ping 设备以及在浏览器中获取 URL。但是,以编程方式,我在尝试打开连接时得到以下堆栈跟踪。

java.net.SocketException: Software caused connection abort: 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:519)
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:793)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1041)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)

另外,URL 使用 https 协议。

这是我的代码:

try {
        URL jipmURL = new URL("https://xxx.xxx.xxx.xxx/login.cgi");
        URLConnection urlConnection = jipmURL.openConnection();
        InputStreamReader streamReader = new InputStreamReader(
                                    jipmURLConnection.getInputStream());
        BufferedReader in = new BufferedReader(streamReader);

        StringBuffer stringBuffer = new StringBuffer();
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            stringBuffer.append(inputLine);
        }
        System.out.println("Results: " + stringBuffer);
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

任何帮助将不胜感激,

史蒂夫

【问题讨论】:

    标签: java networking https sockets


    【解决方案1】:

    异常消息表明您甚至无法与 Web 服务器建立 TCP 连接。很难猜出确切的问题是什么,因为您可以从浏览器中打开该页面,但是否仅仅是因为您正在运行一个软件防火墙,它拒绝 Java 进程连接到该地址?

    【讨论】:

    • 我这边没有运行软件防火墙。我不知道调制解调器是否有某种阻止事物的“防火墙”,但我注意到的一件事是当我尝试访问浏览器中的 url 时它出现证书错误。这可能是问题吗?
    • 你能检查一下你是否能够使用new Socket("xxx.xxx.xxx.xxx", 443);从你的Java程序打开一个普通的TCP套接字到调制解调器吗?
    • 好的,刚刚检查了我是否能够打开调制解调器的计划 TCP 套接字,但我不能。它提出了相同的异常、错误和堆栈跟踪。还有什么想法吗?另外,当我进行跟踪时,它给了我传输错误:代码 1314。
    • 它最终成为了防火墙。谢谢。
    猜你喜欢
    • 2011-10-09
    • 2010-09-13
    • 2011-02-21
    • 2017-04-20
    • 2012-09-10
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多