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 주소 관리 등 다양한 네트워크 관련 작업을 수행할 수 있습니다.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.