Java.Net.SocketException: Netzwerk ist nicht erreichbar

Mehvish Ashiq 12 Oktober 2023
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.

  1. Zuerst erhalten Sie einen java.net.UnknownHostException-Fehler, wenn Sie vollständig vom Internet getrennt sind

  2. Üblicherweise unterscheidet sich der Network is unreachable vom Timeout Error. Beim Timeout 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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

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.

LinkedIn GitHub Facebook

Verwandter Artikel - Java Exception