[java] UDP 소켓 프로그래밍의 특징과 예시 코드

UDP(User Datagram Protocol)는 신뢰성이 낮지만 전송 속도가 빠른 프로토콜입니다. UDP를 이용한 소켓 프로그래밍은 데이터그램을 이용하여 메시지를 주고 받는 작업을 수행할 수 있습니다. UDP 소켓 프로그래밍의 특징과 예시 코드를 살펴보겠습니다.

UDP 소켓 프로그래밍의 특징

UDP 소켓 프로그래밍은 다음과 같은 특징을 가지고 있습니다.

UDP 소켓 프로그래밍 예시 코드

다음은 Java를 사용한 간단한 UDP 소켓 프로그래밍 예시 코드입니다.

import java.net.*;

public class UDPServer {
   public static void main(String args[ ]) {
      try {
         DatagramSocket serverSocket = new DatagramSocket(9876);
         byte[] receiveData = new byte[1024];

         while (true) {
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
            serverSocket.receive(receivePacket);
            String message = new String(receivePacket.getData(), 0, receivePacket.getLength());
            System.out.println("Received: " + message);
         }

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

위 예시 코드는 9876 포트를 통해 데이터그램을 수신하는 UDP 서버를 구현한 것입니다. 데이터를 수신할 때까지 계속해서 대기하며, 데이터를 수신하면 그 내용을 콘솔에 출력합니다.

import java.net.*;

public class UDPClient {
   public static void main(String args[ ]) {
      try {
         DatagramSocket clientSocket = new DatagramSocket();
         InetAddress IPAddress = InetAddress.getByName("localhost");
         byte[] sendData = "Hello, Server!".getBytes();
         DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
         clientSocket.send(sendPacket);
         clientSocket.close();

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

UDPClient 클래스는 로컬호스트로 “Hello, Server!”라는 메시지를 9876 포트를 통해 데이터그램으로 전송합니다.

이러한 예시 코드를 이용하여 UDP 소켓 프로그래밍을 시작해볼 수 있습니다.

이상으로 UDP 소켓 프로그래밍의 특징과 예시 코드에 대해 알아보았습니다. UDP를 이용한 소켓 프로그래밍을 통해 신뢰성은 낮지만 전송 속도가 빠른 네트워크 통신을 구현할 수 있습니다.

참고 자료: