2010-01-13 121 views
1

我试图以编程方式(Java)打开指向网络上调制解调器的URL。我连接到网络,并可以ping设备以及在浏览器中获取URL。但是,通过编程,我在尝试打开连接时收到以下堆栈跟踪。java.net.SocketException:软件导致连接中止:连接

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(); 
    } 

任何帮助,将不胜感激,

史蒂夫

回答

1

异常消息表明,你甚至无法建立与网络TCP连接服务器。很难猜出究竟是什么问题,因为您可以从浏览器打开页面,但是可能只是因为您运行的软件防火墙拒绝Java进程连接到该地址?

+0

我身边没有运行软件防火墙。我不知道调制解调器是否有某种阻止事物的“防火墙”,但我注意到的一件事是,当我尝试访问浏览器中的URL时,它有证书错误。这可能是问题吗? – 2010-01-13 20:17:08

+0

你可以检查你是否可以使用'new Socket(“xxx.xxx.xxx.xxx”,443);''从Java程序打开一个普通的TCP套接字到调制解调器。 – jarnbjo 2010-01-13 20:30:20

+0

好的,只是检查我是否能够打开一个计划TCP套接字到调制解调器,我不是。它出现了相同的异常,错误和堆栈跟踪。还有什么想法?另外,当我做一个tracert时,它给我发送错误:代码1314. – 2010-01-14 16:16:42

相关问题