package CHAPTER14;

import java.net.*;  // 네트워크 관련 클래스 사용

public class C14_04_UDPServer {
    public static void main(String[] args) throws Exception {
        // 3000번 포트에서 데이터그램 소켓(UDP 서버) 생성
        DatagramSocket socket = new DatagramSocket(3000);

        // 수신할 데이터를 저장할 바이트 배열 생성 (최대 1024바이트 수신 가능)
        byte[] buffer = new byte[1024];

        System.out.println("UDP 서버 실행 중...");

        // 클라이언트로부터 수신할 패킷을 저장할 DatagramPacket 생성
        DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

        // 데이터 수신 대기 (패킷이 수신될 때까지 블로킹 상태)
        socket.receive(packet);

        // 수신된 바이트 배열을 문자열로 변환 (실제 데이터 길이만큼 추출)
        String received = new String(packet.getData(), 0, packet.getLength());

        // 수신된 메시지 출력
        System.out.println("클라이언트로부터 받은 메시지: " + received);

        // 소켓 종료
        socket.close();
    }
}

