[java] 자바 소켓 프로그래밍을 활용한 네트워크 통신 예제

네트워크 통신은 컴퓨터와 컴퓨터 사이의 데이터 교환을 가능하게 하는 중요한 개념입니다. 자바 소켓 프로그래밍은 자바에서 네트워크 통신을 구현하는 데 사용되는 기술입니다. 이번 예제에서는 자바 소켓 프로그래밍을 사용하여 간단한 클라이언트-서버 네트워크 통신을 구현해 보겠습니다.

서버 코드

먼저 서버 측 코드를 작성해 보겠습니다. 이 코드는 클라이언트의 연결을 기다리고, 연결이 성공하면 클라이언트로부터 데이터를 읽고, 다시 클라이언트로 데이터를 전송하는 기능을 수행합니다.

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

public class Server {
    public static void main(String[] args) {
        try {
            // 서버 소켓 생성
            ServerSocket serverSocket = new ServerSocket(1234);
            
            // 클라이언트의 연결을 기다리고, 연결이 성공하면 소켓 생성
            Socket clientSocket = serverSocket.accept();
            System.out.println("클라이언트가 연결되었습니다.");
            
            // 클라이언트로부터 데이터를 읽고, 다시 클라이언트로 데이터를 전송하는 코드 작성
            
            // 소켓과 입출력 스트림을 닫음
            clientSocket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

클라이언트 코드

이어서 클라이언트 측 코드를 작성해 보겠습니다. 이 코드는 서버에 연결하고, 서버로부터 데이터를 읽고, 다시 서버로 데이터를 전송하는 기능을 수행합니다.

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

public class Client {
    public static void main(String[] args) {
        try {
            // 서버의 IP 주소와 포트 번호를 지정하여 소켓 생성
            Socket socket = new Socket("127.0.0.1", 1234);
            
            // 서버로 데이터를 전송하고, 서버로부터 데이터를 읽는 코드 작성
            
            // 소켓과 입출력 스트림을 닫음
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

실행 결과

위의 서버 코드와 클라이언트 코드를 각각 실행시키면, 서버 측에서는 클라이언트의 연결을 기다리다가 연결이 성공한 후, 클라이언트로부터 데이터를 읽고, 다시 클라이언트로 데이터를 전송하는 동작을 수행합니다. 클라이언트 측에서는 서버에 연결한 후, 서버로 데이터를 전송하고, 서버로부터 데이터를 읽는 동작을 수행합니다.

실행 결과를 확인해 보면 서버 측과 클라이언트 측이 데이터를 주고받는 것을 확인할 수 있습니다.

마무리

이번 예제에서는 자바 소켓 프로그래밍을 활용하여 간단한 클라이언트-서버 네트워크 통신 예제를 구현해 보았습니다. 소켓 프로그래밍은 네트워크 통신의 기본 개념이므로 학습하고 응용하는 것이 중요합니다.

더 많은 자바 소켓 프로그래밍 예제와 개념을 학습하고자 한다면 다양한 자료와 튜토리얼을 참고해 보시기 바랍니다.

참고 자료

이상으로 자바 소켓 프로그래밍을 활용한 네트워크 통신 예제를 마치겠습니다. 공부하시는 동안 문제가 있으시면 언제든지 문의해 주세요.