[java] 소켓 프로그래밍을 위한 IP와 포트번호 이해하기

소켓 프로그래밍은 네트워크 통신을 위해 사용되는 중요한 개념입니다. IP와 포트번호는 소켓 프로그래밍에서 핵심적인 역할을 수행하는데, 이번 글에서는 IP와 포트번호에 대해 자세히 알아보겠습니다.

IP (인터넷 프로토콜) 주소

IP 주소는 컴퓨터나 기기가 인터넷에서 서로를 식별하기 위한 고유한 식별자입니다. IPv4와 IPv6가 가장 널리 사용되는데, IPv4 주소는 32비트로 구성되어 있고, IPv6 주소는 128비트로 구성되어 있습니다. IP 주소는 다음과 같은 형식을 가지고 있습니다.

IPv4: xxx.xxx.xxx.xxx
IPv6: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

IP 주소는 네트워크 통신을 할 때, 컴퓨터나 기기 간에 데이터를 전송하는데 사용됩니다.

포트번호

포트번호는 IP 주소와 함께 사용되어, 컴퓨터나 기기가 특정 프로세스나 애플리케이션과 데이터를 주고받을 수 있도록 합니다. 포트번호는 0부터 65535까지의 범위를 가지며, 일반적으로 1024번 미만의 포트는 시스템이 사용하고, 1024번 이상의 포트는 사용자 프로세스가 사용합니다.

예를 들어, 웹 브라우저(클라이언트)가 서버에 접속할 때, 클라이언트는 서버의 IP 주소와 포트번호를 사용하여 연결을 요청합니다. 서버는 해당 포트번호를 통해 클라이언트의 요청을 받고, 요청에 맞는 응답을 보냅니다.

코드 예제

아래는 Java를 사용하여 IP와 포트번호를 설정하는 간단한 예제 코드입니다.

import java.net.*;

public class SocketExample {
    public static void main(String[] args) {
        try {
            String ipAddress = "192.168.0.1";
            int port = 8080;

            InetAddress address = InetAddress.getByName(ipAddress);
            Socket socket = new Socket(address, port);

            // 소켓 연결 성공 시, 추가적인 작업을 수행합니다.

            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제 코드에서는 Socket 클래스를 사용하여 특정 IP 주소와 포트번호로 소켓을 연결하는 방법을 보여줍니다.

참고 자료