[java] 서버와 클라이언트 간의 소켓 통신 구현 방법

이번에 우리는 Java를 사용하여 클라이언트와 서버 간의 소켓 통신을 구현하는 방법에 대해 알아보겠습니다.

클라이언트 구현

우선, 클라이언트를 구현하기 위해서는 Socket 클래스를 사용합니다. 클라이언트는 서버의 IP 주소와 포트 번호를 사용하여 소켓에 연결합니다.

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("서버IP주소", 포트번호);

            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            out.write("Hello from client!");
            out.flush();

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String message = in.readLine();
            System.out.println("서버로부터 받은 메시지: " + message);

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

서버 구현

이제 서버를 구현해보겠습니다. 서버는 클라이언트의 연결을 받아들이고 클라이언트로부터 메시지를 수신하여 응답합니다.

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(포트번호);
            System.out.println("서버가 시작되었습니다.");

            Socket socket = serverSocket.accept();
            System.out.println("클라이언트가 연결되었습니다.");

            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String message = in.readLine();
            System.out.println("클라이언트로부터 받은 메시지: " + message);

            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
            out.write("Hello from server!");
            out.flush();

            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드를 사용하여 Java를 통해 클라이언트와 서버 간의 소켓 통신을 구현할 수 있습니다. 소켓 통신을 통해 데이터를 안전하게 전송하고 효율적으로 통신할 수 있습니다.