[java] 자바 소켓 프로그래밍
이 블로그 포스트에서는 자바 소켓 프로그래밍에 대해 알아보겠습니다. 소켓 프로그래밍은 네트워크 통신을 위한 기술로, 클라이언트와 서버 간에 데이터를 주고받을 수 있도록 해줍니다.
소켓(Socket)이란?
소켓은 네트워크 상에서 데이터를 주고받기 위한 도구로, 클라이언트와 서버 간에 연결을 설정하고 데이터를 교환할 수 있도록 해줍니다.
자바 소켓 프로그래밍
자바에서 소켓 프로그래밍을 하려면 java.net
패키지의 Socket
및 ServerSocket
클래스를 사용합니다.
아래는 클라이언트와 서버 간에 간단한 텍스트를 주고받는 예제 코드입니다.
// 서버
import java.io.*;
import java.net.*;
public class MyServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
}
}
// 클라이언트
import java.io.*;
import java.net.*;
public class MyClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 12345);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("Server says: " + in.readLine());
}
}
}
위 코드는 간단한 에코 서버를 구현한 예제로, 클라이언트가 보낸 메시지를 다시 클라이언트에게 돌려주는 기능을 수행합니다.
결론
자바를 사용하여 소켓 프로그래밍을 하면 네트워크 통신 기능을 구현할 수 있습니다. 소켓을 이용하면 클라이언트와 서버 간의 데이터 교환을 효율적으로 할 수 있으며, 이를 통해 다양한 네트워크 기능을 개발할 수 있습니다.
참고 자료: Oracle 자바 소켓 프로그래밍 가이드