[Java] 79. 소켓 통신 - Half Duflex

백하림's avatar
Feb 20, 2025
[Java] 79. 소켓 통신 - Half Duflex
package ex20.ch02; import java.io.*; import java.net.ServerSocket; import java.net.Socket; // 반이중 통신 (Half Way) public class MyServer02 { public static void main(String[] args) { try { ServerSocket ss = new ServerSocket(20000); System.out.println("서버 소켓이 대기 중 입니다. 연결을 시도해주세요."); Socket socket = ss.accept(); // 프로세스 대기 상태 System.out.println("소켓이 연결 되었습니다."); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); String reqbody = br.readLine(); String respbody = ""; // 프로토콜 if (reqbody.equals("name")) { respbody = "MetaCoding"; } else if (reqbody.equals("age")) { respbody = "39"; } else respbody = "error"; BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); bw.write(respbody); bw.write("\n"); bw.flush(); } catch (IOException e) { throw new RuntimeException(e); } } }
notion image
package ex20.ch02; import java.io.*; import java.net.Socket; public class MyClient02 { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 20000); // 소켓 연결 BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); System.out.println("키보드 입력 대기 중..."); String reqBody = keyboard.readLine(); // name, age BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); bw.write(reqBody); bw.write("\n"); // 외워라 bw.flush(); BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); String respBody = br.readLine(); System.out.println(respBody); } catch (IOException e) { throw new RuntimeException(e); } } }
notion image
Share article

harimmon