java.net 패키지는 네트워크 프로그래밍을 위한 클래스와 인터페이스를 제공합니다. 이 패키지를 사용하면 TCP/IP 및 UDP 프로토콜을 기반으로 네트워크 통신을 수행할 수 있습니다.
다음은 java.net 패키지의 주요 클래스와 인터페이스들입니다.
1. InetAddress 클래스
InetAddress 클래스는 IP 주소를 표현합니다. 이 클래스를 사용하여 호스트 이름과 IP 주소 간의 변환을 수행할 수 있습니다.
| 
 1 
2 
3 
4 
5 
6 
 | 
 InetAddress localHost = InetAddress.getLocalHost(); 
System.out.println(“Local host: “ + localHost.getHostName()); 
System.out.println(“IP address: “ + localHost.getHostAddress()); 
InetAddress googleDns = InetAddress.getByName(“8.8.8.8”); 
System.out.println(“Google DNS: “ + googleDns.getHostAddress()); 
 | 
cs | 
2. URL 클래스
URL 클래스는 URL(Uniform Resource Locator)을 표현합니다. 이 클래스를 사용하여 URL의 각 부분(프로토콜, 호스트, 포트, 경로 등)에 접근할 수 있습니다.
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
 URL url = new URL(“https://www.example.com/path/to/resource?param=value#fragment”); 
System.out.println(“Protocol: “ + url.getProtocol()); 
System.out.println(“Host: “ + url.getHost()); 
System.out.println(“Port: “ + url.getPort()); 
System.out.println(“Path: “ + url.getPath()); 
System.out.println(“Query: “ + url.getQuery()); 
System.out.println(“Fragment: “ + url.getRef()); 
 | 
cs | 
3. URLConnection 클래스
URLConnection 클래스는 URL에 대한 통신 링크를 나타냅니다. 이 클래스를 사용하여 URL로부터 데이터를 읽거나 쓸 수 있습니다.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
 URL url = new URL(“https://api.example.com/data”); 
URLConnection connection = url.openConnection(); 
connection.setRequestProperty(“Accept”, “application/json”); 
try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { 
    String line; 
    while ((line = br.readLine()) != null) { 
        System.out.println(line); 
    } 
} 
 | 
cs | 
4. Socket 클래스
Socket 클래스는 TCP 클라이언트 소켓을 나타냅니다. 이 클래스를 사용하여 서버에 연결하고 데이터를 송수신할 수 있습니다.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
 | 
 try (Socket socket = new Socket(“example.com”, 80)) { 
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true); 
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
    out.println(“GET / HTTP/1.1”); 
    out.println(“Host: example.com”); 
    out.println(); 
    String line; 
    while ((line = in.readLine()) != null) { 
        System.out.println(line); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
 | 
cs | 
5. ServerSocket 클래스
ServerSocket 클래스는 TCP 서버 소켓을 나타냅니다. 이 클래스를 사용하여 클라이언트의 연결을 수신하고 각 클라이언트와 통신할 수 있습니다.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
 | 
 try (ServerSocket serverSocket = new ServerSocket(8080)) { 
    while (true) { 
        Socket clientSocket = serverSocket.accept(); 
        System.out.println(“Client connected: “ + clientSocket.getInetAddress()); 
        // 클라이언트와 통신하는 코드 
        // … 
        clientSocket.close(); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
 | 
cs | 
6. DatagramSocket 및 DatagramPacket 클래스
DatagramSocket과 DatagramPacket 클래스는 UDP 통신을 위해 사용됩니다. DatagramSocket은 UDP 소켓을 나타내고, DatagramPacket은 UDP 패킷을 나타냅니다.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
 | 
 try (DatagramSocket socket = new DatagramSocket()) { 
    String message = “Hello, UDP!”; 
    InetAddress address = InetAddress.getByName(“example.com”); 
    int port = 12345; 
    DatagramPacket packet = new DatagramPacket(message.getBytes(), message.length(), address, port); 
    socket.send(packet); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
 | 
cs | 
java.net 패키지는 Java에서 네트워크 프로그래밍을 수행하는 데 필수적인 클래스들을 제공합니다. 이 패키지를 활용하여 TCP/IP 및 UDP 기반의 네트워크 통신, URL 처리, IP 주소 관리 등 다양한 네트워크 관련 작업을 수행할 수 있습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

			