[java] 자바 소켓 통신 프로토콜 종류 (TCP, UDP)
소켓(Socket)은 컴퓨터 네트워크에서 프로세스 간 통신의 종착점을 나타내는 소프트웨어 엔드포인트를 가리킵니다. 자바에서는 소켓을 이용하여 TCP 및 UDP와 같은 다양한 네트워크 프로토콜을 사용할 수 있습니다.
TCP (전송 제어 프로토콜)
TCP는 신뢰할 수 있는 연결 지향형 프로토콜로, 데이터를 안정적으로 전달하고, 오류 복구 및 흐름 제어를 제공합니다. TCP는 웹 브라우저와 웹 서버, 파일 전송 및 전자 메일과 같은 응용 프로그램에서 널리 사용됩니다.
아래는 TCP를 사용한 자바 소켓 통신의 간단한 예시입니다.
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(1234);
Socket socket = serverSocket.accept();
// 소켓 통신 로직 작성
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
UDP (사용자 데이터그램 프로토콜)
UDP는 신뢰성이 낮지만 빠른 데이터 전송을 지원하는 비연결형 프로토콜입니다. 실시간 음성 및 영상 통신, 온라인 게임 및 DNS와 같이 빠른 응답이 필요한 응용 프로그램에서 사용됩니다.
UDP를 사용한 자바 소켓 통신 예시는 다음과 같습니다.
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket();
// 소켓 통신 로직 작성
socket.close();
} catch (SocketException e) {
e.printStackTrace();
}
}
}
결론
자바 소켓을 사용하여 TCP 및 UDP를 통한 네트워크 통신을 구현할 수 있습니다. TCP는 신뢰성 있는 데이터 전송을, UDP는 빠른 데이터 전송을 지원합니다. 프로토콜 선택은 응용 프로그램의 요구 사항과 성능을 고려하여 결정해야 합니다.
더 자세한 내용은 Oracle 자바 문서를 참고하세요.