package CHAPTER14;

import java.io.*;       // 입출력 관련 클래스
import java.net.*;      // 네트워크 관련 클래스

public class C14_02_MyServer {
    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(6000); // 포트 6000으로 서버 소켓 생성
        System.out.println("서버 대기 중 (포트: 6000)...");

        // 클라이언트 연결 대기
        Socket socket = serverSocket.accept();
        System.out.println("클라이언트 연결됨: " + socket.getInetAddress());

        // 클라이언트로부터 데이터를 입력받기 위한 스트림
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        // 클라이언트에게 데이터를 출력하기 위한 스트림
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);

        // 클라이언트로부터 한 줄의 메시지를 읽음
        String message = in.readLine();
        System.out.println("[클라이언트 → 서버] 수신 메시지: " + message);

        // 응답 메시지 작성 (대문자 변환)
        String reply = "서버 응답 → " + message.toUpperCase();

        // 응답 메시지 전송
        out.println(reply);
        System.out.println("[서버 → 클라이언트] 전송 메시지: " + reply);

        // 연결 종료
        socket.close();
        serverSocket.close();
        System.out.println("서버 종료됨.");
    }
}

