Java.Net.SocketException: Netzwerk ist nicht erreichbar
Heute werden wir die möglichen Gründe und Lösungen für die Ausnahme java.net.SocketException: Network is unreachable
beim Programmieren in Java besprechen.
Mögliche Gründe und Lösung für java.net.SocketException: Network is unreachable
in Java
Beispielcode (verursacht einen Fehler):
// 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 + "\r\n");
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 diesem Code übergeben wir die URL
und den fileName
an die downloadXML()
-Methode, die die .xml
-Datei aus der angegebenen URL
liest und in den angegebenen fileName
schreibt, der weiter ist auf unserem lokalen System gespeichert.
Dieses Codebeispiel ist zwar syntaktisch und semantisch korrekt, generiert aber die Ausnahme java.net.SocketException: Network is unreachable
. Der Fehler ist selbsterklärend, der uns mitteilt, dass das Netzwerk derzeit nicht verfügbar ist.
Der Grund für diesen Fehler ist der Verbindungsabbruch. Dies kann bei Wi-Fi, 3G oder einer einfachen Internetverbindung auf dem Gerät (Computer/Laptop) passieren.
Wann immer wir diesen Fehler erhalten, müssen wir davon ausgehen, dass die Internetverbindung nicht stabil ist und von Zeit zu Zeit unterbrochen werden kann, während wir unsere Anwendung schreiben.
Das passiert zum Beispiel bei Handys häufig, wenn wir im Keller oder in der U-Bahn etc. sind. Es passiert auch bei der Nutzung von Apps auf einem PC/Laptop, aber es ist seltener.
Der zweite Grund kann ein falscher Port
und/oder HostName
sein. Stellen Sie sicher, dass beide korrekt sind.
Darüber hinaus müssen Sie sich an zwei weitere Dinge erinnern, die bei der Fehleridentifikation helfen können.
-
Zuerst erhalten Sie einen
java.net.UnknownHostException
-Fehler, wenn Sie vollständig vom Internet getrennt sind -
Üblicherweise unterscheidet sich der
Network is unreachable
vomTimeout Error
. BeimTimeout Error
findet er nicht einmal, wo er hin soll.Beispielsweise kann es einen Unterschied geben, ob unsere Wi-Fi-Karte ausgeschaltet ist oder ob kein Wi-Fi vorhanden ist.
Führen Sie zunächst die übliche Fummelei mit der Firewall durch, um sicherzustellen, dass der erforderliche Port geöffnet ist. Schauen Sie sich dann die Netzwerkprobleme an, die Sie möglicherweise haben.
Schalten Sie die Firewalls aus und beseitigen Sie Hindernisse wie Router und Komplikationen, damit es in einem möglichst einfachen Szenario funktioniert, da es sich um ein netzwerkbezogenes Problem handelt, nicht um ein codebezogenes Problem.
Verwandter Artikel - Java Exception
- Ausnahme bei ungültiger Eingabe in Java
- Ausnahme im Hauptthread Java.Util.NoSuchElementException: Keine Zeile gefunden
- Ausnahme im Thread AWT-EventQueue-0 java.lang.NullPointerException
- Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind
- Der Java-Gateway-Prozess wurde beendet, bevor seine Portnummer gesendet wurde
- Java Throwable vs. Ausnahmeklasse