Java.Net.SocketException: 네트워크에 연결할 수 없음

Mehvish Ashiq 2023년10월12일
Java.Net.SocketException: 네트워크에 연결할 수 없음

오늘은 Java로 프로그래밍하는 동안 java.net.SocketException: Network is unreachable 예외에 대한 가능한 이유와 솔루션에 대해 논의할 것입니다.

Java에서 java.net.SocketException: Network is unreachable에 대한 가능한 이유 및 해결책

예제 코드(오류 발생):

// 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

이 코드에서는 URLfileName을 지정된 URL에서 .xml 파일을 읽고 지정된 fileName에 쓰는 downloadXML() 메서드에 전달합니다. 로컬 시스템에 저장됩니다.

이 코드 예제는 구문 및 의미론적으로 정확하지만 java.net.SocketException: Network is unreachable 예외를 생성합니다. 오류는 현재 네트워크를 사용할 수 없음을 알려주는 자체 설명입니다.

이 오류가 발생하는 이유는 연결 고장입니다. Wi-Fi, 3G 또는 기계(컴퓨터/노트북)의 일반 인터넷 연결에서 발생할 수 있습니다.

이 오류가 발생할 때마다 인터넷 연결이 안정적이지 않고 응용 프로그램을 작성하는 동안 때때로 끊어질 수 있다고 가정해야 합니다.

예를 들어 지하실이나 튜브 등에 있을 때 모바일에서 자주 발생합니다. PC/노트북에서 앱을 사용할 때도 발생하지만 빈도는 낮습니다.

두 번째 이유는 잘못된 Port 및/또는 HostName일 수 있습니다. 둘 다 올바른지 확인하십시오.

또한 오류 식별에 도움이 될 수 있는 두 가지 사항을 더 기억해야 합니다.

  1. 먼저, 인터넷에서 완전히 연결이 끊어지면 java.net.UnknownHostException 오류가 발생합니다.

  2. 일반적으로 Network is unreachableTimeout Error와 다릅니다. Timeout Error에서는 어디로 가야 하는지조차 찾을 수 없습니다.

    예를 들어 Wi-Fi 카드가 꺼져 있는 것과 Wi-Fi가 없는 것 사이에는 차이가 있을 수 있습니다.

먼저 필요한 포트가 열려 있는지 확인하기 위해 일반적인 방화벽 조작을 수행합니다. 그런 다음 발생할 수 있는 네트워크 문제를 살펴보십시오.

방화벽을 끄고 라우터 및 합병증과 같은 장애물을 제거하여 코드 관련 문제가 아닌 네트워크 관련 문제이므로 가능한 가장 간단한 시나리오에서 작동하도록 합니다.

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

관련 문장 - Java Exception