Try send mail via javax.mail:
Properties props = new Properties();
props.put("mail.smtp.host", "xxxxx");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "false");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xx", "xx");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxx"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("xxxxx"));
message.setSubject("Subject");
message.setText("Body");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
It throw exception
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: srv-mail.imb.invention.com, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at foo.SendMailTest.main(SendMailTest.java:41)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: xxx.xxxx.zzzzz.com, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at foo.SendMailTest.main(SendMailTest.java:36)
Caused by: java.net.SocketException: Network is unreachable: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 7 more
Server available:
C:worktest>nc.exe xxx 25
220 xxx.zzz.aaaaaaa.com Microsoft ESMTP MAIL Service ready at Thu, 12 Sep 2013 15:10:45 +0300
ping also work.
Similar .net code work as expected.
I have no ideas what going wrong….
Today, we will discuss the possible reasons and solutions for the java.net.SocketException: Network is unreachable
exception while programming in Java.
Possible Reasons and Solution for java.net.SocketException: Network is unreachable
in Java
Example Code (Causing an Error):
//import required libraries
import java.io.*;
import java.net.URL;
//Main class
public class Main {
//download method
static void downloadXML (String webUrl, String file) throws IOException{
//create object
FileWriter xmlFileWriter;
xmlFileWriter = new FileWriter(file);
System.out.println("URL used for downloading the file is : " + webUrl);
// this statement throws an Exception
BufferedReader inputTextReader = new BufferedReader (
new BufferedReader(
new InputStreamReader(
new URL(webUrl).openStream())));
//create and initialize variables
String string ;
String fileInString = "";
string = inputTextReader.readLine();
//read file
while (string != null ){
fileInString += (string + "rn");
string = inputTextReader.readLine();
}
//write file
xmlFileWriter.write(fileInString);
xmlFileWriter.flush();
xmlFileWriter.close();
System.out.println("The File is Downloaded");
}//end download() function
//main method
public static void main(String[] args){
try{
downloadXML("https://www.cellml.org/Members/stevens/docs/sample.xml",
"downloadXML.xml");
}catch(IOException exception){
exception.printStackTrace();
}
}//end main
}//end Main class
In this code, we pass the URL
and the fileName
to the downloadXML()
method that reads the .xml
file from the specified URL
and writes it into the given fileName
, which is further saved on our local system.
Though this code example is syntactically and semantically correct but generates the java.net.SocketException: Network is unreachable
exception. The error is self-explanatory that tells us the network is not available at the current moment.
The reason causing this error is the connection breakdown. It can happen in Wi-Fi, 3G, or plain internet connection on the machine (computer/laptop).
Whenever we get this error, we must assume that the internet connection is not stable and may be lost from time to time while writing our application.
For instance, this happens with mobiles frequently when we are in the basements or tube, etc. It also happens while using apps on a PC/laptop, but it is less frequent.
The second reason can be incorrect Port
and/or HostName
. Make sure both are correct.
Additionally, you must remember two more things that can help in error identification.
-
First, you will get a
java.net.UnknownHostException
error if you are completely disconnected from the internet -
Usually, the
Network is unreachable
differs from theTimeout Error
. In theTimeout Error
, it can’t even find where it should go.For instance, there can be a difference between having our Wi-Fi card off and no Wi-Fi.
Firstly, perform the usual fiddling with the firewall to ensure that the required port is open. Then, have a look into the network issues that you might have.
Turn off the firewalls and eliminate the obstacles such as routers and complications to make it work in the simplest scenario possible since it is a network-related issue, not code related problem.
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 + "rn");
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.
Buhake Sindi
86.9k28 gold badges167 silver badges224 bronze badges
asked Jul 26, 2011 at 6:51
2
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.
answered Jul 26, 2011 at 7:09
ShlubluShlublu
10.8k4 gold badges52 silver badges69 bronze badges
1
I faced situation of getting java.net.SocketException
not sometimes but every time. I’ve added -Djava.net.preferIPv4Stack=true
to java command line and my program started to work properly.
answered Nov 18, 2016 at 9:29
«Network is unreachable» means just that. You’re not connected to a network. It’s something outside of your program. Could be a bad OS setting, NIC, router, etc.
answered Jul 26, 2011 at 7:05
Ryan StewartRyan Stewart
124k20 gold badges178 silver badges196 bronze badges
1
I haven’t tested with your code so it would be totally different case though, still I’d like to share my experience. (Also this must be too late answer though, I hope this answer still would help somebody in the future)
I recently faced similar experience like you such as some times Network is unreachable, but sometimes not. In short words, what was cause is too small time out. It seems Java throws IOException with stating «Network is unreachable» when the connection fails because of it. It was so misleading (I would expect something like saying «time out») and I spent almost a month to detect it.
Here I found another post about how to set time out.
Alternative to java.net.URL for custom timeout setting
Again, this might not the same case as you got experienced, but somebody for the future.
answered Jan 24, 2018 at 8:07
this just happened to me. None of the answers helped, as the issue was I have recently changed the target host configuration and put incorrect host value there. So it could just be wrong connection details as well.
answered Jan 13, 2021 at 15:19
I faced this error after updating my network adapter configuration (migration to a NIC coupled network by PowerShell commandlet New-NetSwitchTeam). My guess is, that something in the java configuration must be adapted to reflect this change to the java system. But it is unclear where the changes should take place. I am investigating further.
answered Feb 17, 2021 at 17:30
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 + "rn");
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.
Buhake Sindi
86.9k28 gold badges167 silver badges224 bronze badges
asked Jul 26, 2011 at 6:51
2
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.
answered Jul 26, 2011 at 7:09
ShlubluShlublu
10.8k4 gold badges52 silver badges69 bronze badges
1
I faced situation of getting java.net.SocketException
not sometimes but every time. I’ve added -Djava.net.preferIPv4Stack=true
to java command line and my program started to work properly.
answered Nov 18, 2016 at 9:29
«Network is unreachable» means just that. You’re not connected to a network. It’s something outside of your program. Could be a bad OS setting, NIC, router, etc.
answered Jul 26, 2011 at 7:05
Ryan StewartRyan Stewart
124k20 gold badges178 silver badges196 bronze badges
1
I haven’t tested with your code so it would be totally different case though, still I’d like to share my experience. (Also this must be too late answer though, I hope this answer still would help somebody in the future)
I recently faced similar experience like you such as some times Network is unreachable, but sometimes not. In short words, what was cause is too small time out. It seems Java throws IOException with stating «Network is unreachable» when the connection fails because of it. It was so misleading (I would expect something like saying «time out») and I spent almost a month to detect it.
Here I found another post about how to set time out.
Alternative to java.net.URL for custom timeout setting
Again, this might not the same case as you got experienced, but somebody for the future.
answered Jan 24, 2018 at 8:07
this just happened to me. None of the answers helped, as the issue was I have recently changed the target host configuration and put incorrect host value there. So it could just be wrong connection details as well.
answered Jan 13, 2021 at 15:19
I faced this error after updating my network adapter configuration (migration to a NIC coupled network by PowerShell commandlet New-NetSwitchTeam). My guess is, that something in the java configuration must be adapted to reflect this change to the java system. But it is unclear where the changes should take place. I am investigating further.
answered Feb 17, 2021 at 17:30
Try send mail via javax.mail:
Properties props = new Properties();
props.put("mail.smtp.host", "xxxxx");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "false");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xx", "xx");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("xxxxx"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("xxxxx"));
message.setSubject("Subject");
message.setText("Body");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
It throw exception
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: srv-mail.imb.invention.com, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at foo.SendMailTest.main(SendMailTest.java:41)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: xxx.xxxx.zzzzz.com, port: 25;
nested exception is:
java.net.SocketException: Network is unreachable: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at foo.SendMailTest.main(SendMailTest.java:36)
Caused by: java.net.SocketException: Network is unreachable: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:321)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 7 more
Server available:
C:worktest>nc.exe xxx 25
220 xxx.zzz.aaaaaaa.com Microsoft ESMTP MAIL Service ready at Thu, 12 Sep 2013 15:10:45 +0300
ping also work.
Similar .net code work as expected.
I have no ideas what going wrong….
Содержание
- Java.Net.SocketException: Network Is Unreachable
- Possible Reasons and Solution for java.net.SocketException: Network is unreachable in Java
- Minecraft Forums
- java.net.SocketExecption: Network is unreachable
- java.net.SocketException: Сеть недоступна: подключиться
- 6 ответы
- java.net.SocketException: Сеть недоступна: подключиться
- 6 ответов
- Java.net.ConnectException: Connection timed out: no further information — Решение
- Connection timed out: no further information – особенности дисфункции
- Как исправить «Java.net.ConnectException: Connection timed out»
Java.Net.SocketException: Network Is Unreachable
Today, we will discuss the possible reasons and solutions for the java.net.SocketException: Network is unreachable exception while programming in Java.
Possible Reasons and Solution for java.net.SocketException: Network is unreachable in Java
Example Code (Causing an Error):
In this code, we pass the URL and the fileName to the downloadXML() method that reads the .xml file from the specified URL and writes it into the given fileName , which is further saved on our local system.
Though this code example is syntactically and semantically correct but generates the java.net.SocketException: Network is unreachable exception. The error is self-explanatory that tells us the network is not available at the current moment.
The reason causing this error is the connection breakdown. It can happen in Wi-Fi, 3G, or plain internet connection on the machine (computer/laptop).
Whenever we get this error, we must assume that the internet connection is not stable and may be lost from time to time while writing our application.
For instance, this happens with mobiles frequently when we are in the basements or tube, etc. It also happens while using apps on a PC/laptop, but it is less frequent.
The second reason can be incorrect Port and/or HostName . Make sure both are correct.
Additionally, you must remember two more things that can help in error identification.
First, you will get a java.net.UnknownHostException error if you are completely disconnected from the internet
Usually, the Network is unreachable differs from the Timeout Error . In the Timeout Error , it can’t even find where it should go.
For instance, there can be a difference between having our Wi-Fi card off and no Wi-Fi.
Firstly, perform the usual fiddling with the firewall to ensure that the required port is open. Then, have a look into the network issues that you might have.
Turn off the firewalls and eliminate the obstacles such as routers and complications to make it work in the simplest scenario possible since it is a network-related issue, not code related problem.
Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.
Источник
Minecraft Forums
java.net.SocketExecption: Network is unreachable
I have a server running on a Mac using Craftbukkit. Recently, my computer’s graphics card had to be replaced; and ever since, my friends could not connect to the server. Only I can, using «localhost». When anybody else tries to connect, they get the following error message: «Failed to connect to the server java.net.SocketExecption: Network is unreachable».
Please help! Btw, I tried restarting the server, my wireless connection, and even my computer; yet still nothing works.
Thank you so much!
- Enderman Ender
- Join Date: 6/3/2011
- Posts: 8,485
- Member Details
This strongly implies that the IP address they are trying to use is bogus.
A port forwarding problem would not manifest itself as a NETWORK unreachable.
This message means that an IP router somewhere is throwing up it’s hands and saying «I have no idea where to send this»
- Tree Puncher
- Join Date: 1/11/2012
- Posts: 24
- Member Details
This strongly implies that the IP address they are trying to use is bogus.
A port forwarding problem would not manifest itself as a NETWORK unreachable.
This message means that an IP router somewhere is throwing up it’s hands and saying «I have no idea where to send this»
The odd thing is that they have been using the same IP all the time, and only now am I getting this error. I got the IP to use off of IPChicken, and it is the same as always.
- Tree Puncher
- Join Date: 1/11/2012
- Posts: 24
- Member Details
- Enderman Ender
- Join Date: 6/3/2011
- Posts: 8,485
- Member Details
that error means the device where your packets are arriving is NOT LISTENING.
So.. either your server is not running, or you are using the wrong IP address to connect with, or your port forwarding is pointed at the wrong IP address.
This is not usually a firewall issue, as they usually just silently eat packets.
- Tree Puncher
- Join Date: 1/11/2012
- Posts: 24
- Member Details
that error means the device where your packets are arriving is NOT LISTENING.
So.. either your server is not running, or you are using the wrong IP address to connect with, or your port forwarding is pointed at the wrong IP address.
This is not usually a firewall issue, as they usually just silently eat packets.
My server is running, I use the right IP, and I’m pretty sure my port forwarding is pointed at the correct IP address. Whenever I go on Verizon and port forward, it seems to work; yet when I go on canyouseeme.org and test port 25565, it also says connection refused. Man, is this annoying.
EDIT: Other computers in my LAN can connect to my server, but still not outside of my LAN.
Источник
java.net.SocketException: Сеть недоступна: подключиться
Я пытаюсь загрузить текстовый файл xml с веб-сервера, используя этот метод:
Иногда возникает это исключение (где я указал код):
Пожалуйста, помогите мне
задан 26 июля ’11, 03:07
!(str == null) просто сбивает с толку, вы должны написать str != null . — TC1
Где и как вы инициализируете переменную addURL? — pap
6 ответы
Вы столкнулись с обрывом связи. Такое бывает при 3G, WiFi или «обычном» подключении на компе?
В любом случае, вы должны предполагать, что соединение может время от времени теряться при написании вашего приложения. Например, с мобильными телефонами это часто происходит в трубке, в подвалах и т. Д. В приложениях для ПК это случается реже, но иногда.
Повторная попытка может быть хорошим решением. И чистое сообщение об ошибке, объясняющее, что сеть также недоступна в данный момент.
Создан 26 июля ’11, 08:07
Я добавил поток, который по истечении времени ожидания запроса пытается снова. это было эффективно. потому что в моей сети мы транслируем несколько медиаконтентов; возникают эти проблемы. Спасибо за помощь — Саяд
«Сеть недоступна» означает именно это. Вы не подключены к сети. Это что-то вне вашей программы. Это может быть неправильная настройка ОС, сетевой карты, маршрутизатора и т. Д.
Создан 26 июля ’11, 08:07
Это тоже, но это я или нет определения для addURL где-нибудь там? — TC1
Я столкнулся с ситуацией получения java.net.SocketException не иногда, а каждый раз. я добавил -Djava.net.preferIPv4Stack=true в командную строку java, и моя программа начала работать правильно.
Я не тестировал ваш код, так что это был бы совершенно другой случай, но все же я хотел бы поделиться своим опытом. (Кроме того, это, должно быть, слишком поздний ответ, я надеюсь, что этот ответ все же поможет кому-то в будущем)
Я недавно столкнулся с подобным опытом, как и вы, например, иногда сеть недоступна, но иногда нет. Короче говоря, то, что было причиной, — слишком маленький тайм-аут. Кажется, что Java выдает исключение IOException с сообщением «Сеть недоступна», когда из-за этого происходит сбой соединения. Это было настолько вводящим в заблуждение (я ожидал, что что-то вроде «тайм-аут»), что я потратил почти месяц, чтобы обнаружить это.
Здесь я нашел еще один пост о том, как установить тайм-аут. Альтернатива java.net.URL для настройки времени ожидания
Опять же, это может быть не тот случай, который вы пережили, но кто-то на будущее.
это только что случилось со мной. Ни один из ответов не помог, так как проблема заключалась в том, что я недавно изменил конфигурацию целевого хоста и поместил туда неверное значение хоста. Так что это также может быть неправильная информация о подключении.
Я столкнулся с этой ошибкой после обновления конфигурации сетевого адаптера (миграция на сеть, подключенную к сетевому адаптеру, с помощью командлета PowerShell New-NetSwitchTeam). Я предполагаю, что что-то в конфигурации Java должно быть адаптировано, чтобы отразить это изменение в системе Java. Но непонятно, где должны произойти изменения. Я продолжаю расследование.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками java sockets exception network-programming or задайте свой вопрос.
Источник
java.net.SocketException: Сеть недоступна: подключиться
Я пытаюсь загрузить текстовый файл xml с веб-сервера, используя этот метод:
Иногда возникает это исключение (где я указал код):
Пожалуйста, направь меня
Спасибо вам всем.
6 ответов
Вы столкнулись с обрывом связи. Такое бывает при 3G, WiFi или «обычном» подключении на компе?
В любом случае, вы должны предполагать, что соединение может время от времени теряться при написании вашего приложения. Например, с мобильными телефонами это часто случается в трубке, в подвалах и т. Д. В приложениях для ПК это случается реже, но иногда.
Повторная попытка может быть хорошим решением. И чистое сообщение об ошибке, объясняющее, что сеть также недоступна в данный момент.
«Сеть недоступна» означает именно это. Вы не подключены к сети. Это что-то вне вашей программы. Это может быть неправильная настройка ОС, сетевой карты, маршрутизатора и т. Д.
Я не тестировал ваш код, так что это был бы совершенно другой случай, но все же я хотел бы поделиться своим опытом. (Кроме того, это, должно быть, слишком поздний ответ, я надеюсь, что этот ответ все же поможет кому-то в будущем)
Я недавно столкнулся с подобным опытом, как и вы, например, иногда сеть недоступна, но иногда нет. Короче говоря, то, что было причиной, — слишком маленький тайм-аут. Кажется, что Java выдает исключение IOException с сообщением «Сеть недоступна», когда из-за этого происходит сбой соединения. Это было настолько вводящим в заблуждение (я ожидал, что что-то вроде «тайм-аут»), что я потратил почти месяц, чтобы обнаружить это.
Опять же, это может быть не тот случай, который вы пережили, но кто-то на будущее.
Это только что случилось со мной. Ни один из ответов не помог, так как проблема заключалась в том, что я недавно изменил конфигурацию целевого хоста и поместил туда неверное значение хоста. Так что это также может быть неправильная информация о подключении.
Я столкнулся с этой ошибкой после обновления конфигурации моего сетевого адаптера (переход на сеть, подключенную к сетевому адаптеру, с помощью командлета PowerShell New-NetSwitchTeam). Я предполагаю, что что-то в конфигурации Java должно быть адаптировано, чтобы отразить это изменение в системе Java. Но неясно, где должны произойти изменения. Я продолжаю расследование.
Источник
Java.net.ConnectException: Connection timed out: no further information — Решение
При попытке подключения к серверу «Майнкрафт» пользователь может столкнуться с сообщением «Java.net.ConnectException: Connection timed out: no further information». Появление данного сообщения обычно сигнализирует о возникновении различного рода сетевых проблем при получении доступа к игровому серверу, из-за чего желание пользователя насладиться игровыми мирами «Майнкрафт» остаётся нереализованным. Ниже я разберу суть данной дисфункции, опишу её причины, а также поясню, как исправить ошибку Java.net.ConnEctexception на вашем ПК.
Connection timed out: no further information – особенности дисфункции
В переводе текст данного сообщения выглядит примерно как «Сетевой сбой Java. Время соединения истекло: дальнейшая информация отсутствует».
Указанная ошибка Java.net.ConnectException обычно возникает во время подключения к серверу игры «Майнкрафт», но также фиксировались спорадические случаи появления данной ошибки при работе других продуктов, использующих «Java» (к примеру, на «Azure notification hub»).
Появление проблемы «Java.net.ConnectException: Connection timed out: no further information» имеет следующие причины:
- Пользователь использует нестабильное сетевое соединение с медленным интернетом;
- На ПК пользователя установлена устаревшая версия «Java»;
- Пользователь пользуется устаревшей версией «Майнкрафт»;
- Наблюдаются сбои в работе игрового сервера, к которому пробует подключиться пользователь (ресурс не доступен, проходят технические работы и др.);
- Антивирус или брандмауэр блокирует подключения к игровому серверу;
- Пользователь использует динамический IP;
- Пользовательский роутер работает некорректно.
Как исправить «Java.net.ConnectException: Connection timed out»
Существуют несколько способов избавиться от ошибки Java.net.ConnectException. Рассмотрим их по порядку:
- Перезагрузите ваш PC. В некоторых случаях данный простой метод позволял решить ошибку java.net.connectexception connection refused;
- Установите на ПК свежую версию «Java». Довольно частой причиной рассматриваемой проблемы является устаревшая версия «Java» на пользовательском ПК. Перейдите в Панель управления, затем в «Программы», там найдите «Java» и кликните на неё. После появления окна её настроек перейдите на вкладку «Update», нажмите там на кнопку «Update Now», и установите в системе требуемые обновления.
Данную процедуру необходимо провести как на вашей машине, так и на машине того пользователя, с которым вы собираетесь играть в «Майнкрафт» по сети;
- Внесите «Майнкрафт» в исключения брандмауэра и антивируса на вашем ПК. Запустите Панель управления, перейдите в «Система и безопасность», там найдите «Брандмауэр Виндовс» и кликните на него. В открывшемся окне настроек брандмауэра слева сверху выберите опцию «Разрешения взаимодействия…».
В открывшемся окне разрешённых для внешнего подключения программ найдите программы с упоминанием «Java», и поставьте им галочки для разрешения подключения (поможет кнопка «Изменить параметры»). Нажимаем на «Ок» для сохранения результата, перезагружаемся и пробуем подключиться к серверу. С антивирусом необходимо проделать аналогичные операции, внеся «Java» и «Майнкрафт» в его исключения;
Установите самую свежую версию программы
Источник
-
Search
-
Search all Forums
-
Search this Forum
-
Search this Thread
-
-
Tools
-
Jump to Forum
-
-
#1
Feb 27, 2012
Hello all,
I have a server running on a Mac using Craftbukkit. Recently, my computer’s graphics card had to be replaced; and ever since, my friends could not connect to the server. Only I can, using «localhost». When anybody else tries to connect, they get the following error message: «Failed to connect to the server java.net.SocketExecption: Network is unreachable».
Please help! Btw, I tried restarting the server, my wireless connection, and even my computer; yet still nothing works.
Thank you so much!
-
#2
Feb 27, 2012
gerbil-
View User Profile
-
View Posts
-
Send Message
- Enderman Ender
- Join Date:
6/3/2011
- Posts:
8,485
- Member Details
«Failed to connect to the server java.net.SocketExecption: Network is unreachable»
This strongly implies that the IP address they are trying to use is bogus.
A port forwarding problem would not manifest itself as a NETWORK unreachable.This message means that an IP router somewhere is throwing up it’s hands and saying «I have no idea where to send this»
-
-
#3
Feb 28, 2012
This strongly implies that the IP address they are trying to use is bogus.
A port forwarding problem would not manifest itself as a NETWORK unreachable.This message means that an IP router somewhere is throwing up it’s hands and saying «I have no idea where to send this»
The odd thing is that they have been using the same IP all the time, and only now am I getting this error. I got the IP to use off of IPChicken, and it is the same as always.
-
#5
Feb 28, 2012
I tried port forwarding, but now I have a new error: «Connection Refused». Plz help!!!!
-
#6
Feb 28, 2012
gerbil-
View User Profile
-
View Posts
-
Send Message
- Enderman Ender
- Join Date:
6/3/2011
- Posts:
8,485
- Member Details
that error means the device where your packets are arriving is NOT LISTENING.
So.. either your server is not running, or you are using the wrong IP address to connect with, or your port forwarding is pointed at the wrong IP address.
This is not usually a firewall issue, as they usually just silently eat packets.
-
-
#7
Feb 28, 2012
that error means the device where your packets are arriving is NOT LISTENING.
So.. either your server is not running, or you are using the wrong IP address to connect with, or your port forwarding is pointed at the wrong IP address.
This is not usually a firewall issue, as they usually just silently eat packets.
My server is running, I use the right IP, and I’m pretty sure my port forwarding is pointed at the correct IP address. Whenever I go on Verizon and port forward, it seems to work; yet when I go on canyouseeme.org and test port 25565, it also says connection refused. Man, is this annoying.
EDIT: Other computers in my LAN can connect to my server, but still not outside of my LAN.
-
#9
Feb 29, 2012
Yeah it’s most likely your firewall on your pc that is blocking Minecraft.
Did you try and turn it off for a minute and test it?Also being «pretty sure» that you’re using the right IP is not enough :smile.gif:
My firewall says:
«Typical Security (Medium)
Inbound Policy: Reject.
Remote Administration settings will override the security inbound policy.
Outbound Policy: Accept.»And I know that something must be wrong, as I tried my external IP and internal IP.
EDIT: It turns out that my firewall was on too high of a security! Now it works!! Thx!
- To post a comment, please login.
Posts Quoted:
Reply
Clear All Quotes
-
#1
Exception in thread «main» java.net.SocketException: Network is unreachable: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at MyHttpConnection.sendGet(MyHttpConnection.java:27)
at MyHttpConnection.main(MyHttpConnection.java:10)
Whatka
-
#2
at MyHttpConnection.sendGet(MyHttpConnection.java:27)
at MyHttpConnection.main(MyHttpConnection.java:10)Network is unreachable: connect
-
#3
А как ее побороть.
import java.net.HttpURLConnection;
import java.net.URL;
public class MyHttpConnection {
private final String USER_AGENT = «Mozilla»;
public static void main(String[] args) throws Exception {
MyHttpConnection httpConnection = new MyHttpConnection();
httpConnection.sendGet();
}
private void sendGet() throws Exception {
String url = «http://www.google.com/search?q=mkyong»;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod(«GET»);
//add request header
con.setRequestProperty(«User-Agent», USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println(«nSending ‘GET’ request to URL : » + url);
System.out.println(«Response Code : » + responseCode);
}
}
Whatka
-
#4
Почитайте подробнее про установление соединения и существующие классы.
MyHttpConnectio — это ваш класс,а вам нужен,работающий стандартный.
-
#5
Просто так получается что на одном компьютере работает на другом нет
Почитайте подробнее про установление соединения и существующие классы.
MyHttpConnectio — это ваш класс,а вам нужен,работающий стандартный.
-
#6
Порт заблокирован антивирусом или фаерволом, или на неё уже висит другая программа?