package ex20.ch01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
// 단방향 통신
public class MyServer01 {
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 body = br.readLine(); // 버퍼 소비 (여기서 멈춰있음)
System.out.println("서버측 : " + body);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

package ex20.ch01;
import java.io.*;
import java.net.Socket;
public class MyClient01 {
public static void main(String[] args) {
try {
// localhost : 루프백 주소, 내 주소
Socket socket = new Socket("localhost", 20000); // 소켓 연결
BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
System.out.println("키보드 입력 대기 중...");
String msg = keyboard.readLine(); // 여기서 멈춰있음
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
bw.write(msg);
bw.write("\n"); // 외워라
bw.flush();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

Share article