java.net.SocketException:网络无法连接 [英] java.net.SocketException: Network is unreachable: connect
问题描述
static void download(String url ,String fileName)throws IOException {
FileWriter xmlWriter;
xmlWriter = new FileWriter(fileName);
System.out.println(要下载的URL是:+ url);
// here异常被抛出//////////////////////////// $ $ $ $ b BufferedReader inputTxtReader = new BufferedReader
(new BufferedReader(new InputStreamReader(addURL.openStream())));
//////////////////////////////////////////// //////////
String str;
String fileInStr =;
str = inputTxtReader.readLine();
while(!(str == null)){///&&& !(str.equals( fileInStr + =(str +\r\\\
);
str = inputTxtReader.readLine();
}
xmlWriter.write(fileInStr);
xmlWriter.flush();
xmlWriter.close();
System.out.println(File Downloaded);
}
有时这个异常被抛出(我指定的是代码):
java.net.SocketException:网络无法访问:在java.net.PlainSocketImpl.socketConnect(Native Method)连接
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
在java.net.PlainSocketImpl.connect(PlainSocketImpl .java:182)
在java.net.Socket.connect(Socket.java:518)
在java.net.Socket.connect(Socket.java:468)
在太阳。 net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:389)
at sun.net.www.http.HttpClient。 openServer(HttpClient.java:516)
at sun.net.www.http.HttpClient。< init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New (HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:318 )
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729 )
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977 )
在java.net.URL.openStream(URL.java:1009)
在MessagePanel.download(MessagePanel.java:640)
在WelcomThread.run(MainBody2.java:891)
请指导我
谢谢大家
您正在面对连接故障。这是否在计算机上的3G,WiFi或普通连接中发生?
无论如何,您必须假设连接可能会不时丢失,当您写应用程序。例如,使用手机,这在管道,地下室等中经常发生。使用PC应用程序,这种情况不太频繁,但有时会发生。
重试可以是好的解决方案而这个解释网络的干净的错误消息在这个时候也是不可用的。
I am trying to download a xml text file from a web server using this method:
static void download (String url , String fileName) throws IOException{
FileWriter xmlWriter;
xmlWriter = new FileWriter(fileName);
System.out.println("URL to download is : " + url);
// here Exception is thrown/////////////////////////////////
BufferedReader inputTxtReader = new BufferedReader
(new BufferedReader(new InputStreamReader(addURL.openStream())));
////////////////////////////////////////////////////////
String str ;
String fileInStr = "";
str = inputTxtReader.readLine();
while (!(str == null) ){///&& !(str.equals("</tv>"))
fileInStr += (str + "\r\n");
str = inputTxtReader.readLine();
}
xmlWriter.write(fileInStr);
xmlWriter.flush();
xmlWriter.close();
System.out.println("File Downloaded");
}
Sometimes this exception is thrown (where I specified is code):
java.net.SocketException: Network is unreachable: 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.Socket.connect(Socket.java:518)
at java.net.Socket.connect(Socket.java:468)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:389)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:516)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:318)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
at java.net.URL.openStream(URL.java:1009)
at MessagePanel.download(MessagePanel.java:640)
at WelcomThread.run(MainBody2.java:891)
Please guide me
Thank you all.
You are facing a connection breakdown. Does this happen in 3G, WiFi or "plain" connection on a computer?
Anyway, you must assume that the connection may be lost from time to time, when writing your app. For example, with mobiles, this happens frequently in the tube, in basements, etc. With PC apps, this is less frequent but occurs sometimes.
A retry can be a good solution. And a clean error message that explains the network is not available at this moment too.
这篇关于java.net.SocketException:网络无法连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!