[Java] Java 네트워크 프로그래밍 기초 #22

소개

Java는 강력한 네트워크 프로그래밍 능력을 제공하여 다양한 애플리케이션을 개발할 수 있는 풍부한 생태계를 제공합니다. 본 블로그에서는 Java 네트워크 프로그래밍의 기초에 대해 알아보겠습니다. 이 글은 Java를 처음 다루는 분들을 대상으로 하며, 네트워크 프로그래밍에 대한 궁금증을 해소하고자 합니다.

네트워크 프로그래밍이란?

네트워크 프로그래밍은 컴퓨터 간의 통신을 관리하고 제어하는 프로세스를 포함하는 개념입니다. Java에서의 네트워크 프로그래밍은 주로 소켓을 사용하여 이루어집니다. 소켓은 특정 IP 주소와 포트를 통해 통신을 가능케 하는 일종의 문입니다.

Java 데이터 타입에서 Map의 사용방법 및 장단점

기본 개념 이해하기

1. 소켓(Socket)

소켓은 컴퓨터 간의 양방향 통신을 가능케 하는 도구로, 클라이언트와 서버 간의 연결을 담당합니다. Java에서는 Socket 클래스를 사용하여 소켓을 생성하고 관리할 수 있습니다.

// 클라이언트 소켓 생성
Socket clientSocket = new Socket("서버IP주소", 포트번호);

// 서버 소켓 생성
ServerSocket serverSocket = new ServerSocket(포트번호);
Socket serverClientSocket = serverSocket.accept();

2. 입출력 스트림(Stream)

입출력 스트림은 데이터를 읽고 쓰는데 사용되는 흐름입니다. InputStreamOutputStream 클래스는 바이트 단위로 데이터를 처리합니다.

// 데이터 전송 예시
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();

// 데이터 읽기 및 쓰기
int data = inputStream.read();
outputStream.write(data);

실전 예제

이론을 실전으로 옮겨보겠습니다. 아주 간단한 채팅 애플리케이션을 만들어 보겠습니다.

// 클라이언트
Socket clientSocket = new Socket("localhost", 12345);
OutputStream outputStream = clientSocket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);

// 서버
ServerSocket serverSocket = new ServerSocket(12345);
Socket serverClientSocket = serverSocket.accept();
InputStream inputStream = serverClientSocket.getInputStream();
Scanner scanner = new Scanner(inputStream);

// 메시지 전송
writer.println("안녕하세요!");

// 메시지 수신
String receivedMessage = scanner.nextLine();
System.out.println("상대방: " + receivedMessage);

마무리 Java 네트워크 프로그래밍

이번 글에서는 Java의 네트워크 프로그래밍 기초를 다뤄보았습니다. 소켓과 입출력 스트림을 이용하여 간단한 통신을 구현하는 방법을 살펴보았습니다. 네트워크 프로그래밍은 더 복잡한 통신 구조를 다룰 수 있으며, 더 많은 기능을 탐험해 볼 수 있습니다. 계속해서 자바의 네트워크 프로그래밍에 대한 심화 내용을 학습하시면 보다 다양한 애플리케이션을 개발하는 데 도움이 될 것입니다.

[Java] Java 동기화 (Synchronization) #21
[Java] Java 동기화 (Synchronization) #21
[Java] Java 소켓 프로그래밍 #23
[Java] Java 소켓 프로그래밍 #23

Leave a Comment