[자바 고급 #5] 소켓통신 실습(일대일)

도경원's avatar
Sep 16, 2025
[자바 고급 #5] 소켓통신 실습(일대일)

1. 소켓통신 실습

notion image
쫌 더 자세히
notion image
package socket1; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class ServerFile { // 클라이언트 연결을 받는 소켓 ServerSocket serverSocket; // 실제 통신을 하는 소켓 Socket socket; // Ctrl + Space BufferedReader br; public ServerFile() { System.out.println("1. 서버소켓 시작--------------------"); try { serverSocket = new ServerSocket(10000); System.out.println("2. 서버소켓 생성완료 : 클라이언트 접속 대기중 ------------------"); socket = serverSocket.accept(); // 클라이언트 접속 대기중 .... System.out.println("3. 클라이언트 연결완료 - buffer연결완료(read)"); br = new BufferedReader(new InputStreamReader(socket.getInputStream())); String msg = br.readLine(); System.out.println("4. 클라이언트로 부터 받은 메시지 : " + msg); } catch (Exception e) { System.out.println("서버소켓 에러 발생함" + e.getMessage()); } } public static void main(String[] args) { new ServerFile(); } }
package socket1; import java.io.*; import java.net.Socket; public class ClientFile { Socket socket; BufferedWriter bw; BufferedReader br; public ClientFile() { try { System.out.println("1. 클라이언트소켓 시작-------------------------"); socket = new Socket("localhost", 10000); //라인 실행시 -> 서버소켓의 accept() 메서드 호출 System.out.println("2. 버퍼(write) 연결완료 ------------------"); bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // 키보드 연결 System.out.println("3. 키보드 스트림 + 버퍼(read) 연결완료 -----------------"); br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("4. 키보드 메시지 입력 대기중 ----------------------"); String keyboardMsg = br.readLine(); // 메시지 끝을 알려줘야 한다. \n bw.write(keyboardMsg+"\n"); bw.flush(); } catch (Exception e) { System.out.println("클라이언트소켓 에러 발생함 : " + e.getMessage()); } } public static void main(String[] args) { new ClientFile(); } }
코드 그림으로 정리
notion image

참고) localhost 개념

notion image
  • 자기 자신의 ip
    • 110.5.8.7
    • 본인 스스로를 나타내는 주소 : 127.0.0.1은 localhost와 같다.
 
Share article

Gyeongwon's blog