[java] 자바 소켓 프로그래밍을 통한 시스템 간 동기화
소개
시스템 간의 통신이 필요한 경우, 자바 소켓 프로그래밍은 매우 유용한 도구입니다. 소켓을 사용하여 서버와 클라이언트 간에 데이터를 송수신할 수 있으며, 이를 통해 시스템 간 동기화를 달성할 수 있습니다. 이번 블로그 포스트에서는 자바 소켓 프로그래밍을 사용하여 시스템 간 동기화를 구현하는 방법을 알아보겠습니다.
소켓 프로그래밍 기본 개념
소켓은 네트워크를 통해 통신하는 데 사용되는 일종의 통신 연결점입니다. 클라이언트는 서버의 소켓과 연결을 수립하고, 데이터를 송수신할 수 있습니다. 이를 통해 서버와 클라이언트 간의 실시간 통신이 가능해집니다.
자바 소켓 프로그래밍 예제
다음은 자바 소켓 프로그래밍을 사용하여 시스템 간 동기화를 구현하는 간단한 예제 코드입니다.
import java.io.*;
import java.net.*;
public class Server {
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) {
// 클라이언트로부터 데이터를 읽어들임
System.out.println("Received: " + inputLine);
// 동기화 작업 수행
// 클라이언트로 응답을 보냄
out.println("Response");
}
}
}
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
String hostName = "localhost";
int portNumber = 12345;
try (
Socket socket = new Socket(hostName, portNumber);
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);
// 서버로부터 응답을 받아 처리
String response = in.readLine();
System.out.println("Server response: " + response);
}
}
}
}
위의 예제 코드는 간단한 서버와 클라이언트를 구현한 것입니다. 서버는 소켓을 생성하고 클라이언트의 연결을 기다리며, 클라이언트는 서버에 연결한 후 데이터를 송수신합니다.
결론
자바 소켓 프로그래밍을 사용하면 서버와 클라이언트 사이에서 데이터를 신속하게 송수신할 수 있습니다. 이를 통해 시스템 간 동기화를 구현하고 여러 시스템 간의 데이터를 실시간으로 동기화할 수 있습니다.