반이중 실습
Jan 10, 2024

양방향 전송이 가능하지만 동시에 양쪽 방향에서 전송할 수 없는 방식
ex) 무전기
서버
package ex17.half;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(20000); // 서버소켓
Socket socket = serverSocket.accept(); // 연결
// 소켓 연결 완료됨
// 버퍼 만들기 (recevied)
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()) // 문자로 읽기
);
String requestMsg = br.readLine();
System.out.println("클라이언트로부터 받은 메시지 : " + requestMsg);
// 버퍼 만들기 (send) 동기적 실행
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true, Charset.forName("UTF-8"));
if (requestMsg.equals("1")) {
pw.println("영화");
} else if (requestMsg.equals("2")) {
pw.println("드라마");
} else {
pw.println("프로토콜을 확인하세요 : 1은 영화, 2는 드라마");
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
클라이언트
package ex17.half;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.Charset;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(20000); // 서버소켓
Socket socket = serverSocket.accept(); // 연결
// 소켓 연결 완료됨
// 버퍼 만들기 (recevied)
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream())
);
String requestMsg = br.readLine();
System.out.println("클라이언트로부터 받은 메시지 : " + requestMsg);
// 버퍼 만들기 (send) 동기적 실행
PrintWriter pw = new PrintWriter(socket.getOutputStream(), true, Charset.forName("UTF-8"));
if (requestMsg.equals("1")) {
pw.println("영화");
} else if (requestMsg.equals("2")) {
pw.println("드라마");
} else {
pw.println("프로토콜을 확인하세요 : 1은 영화, 2는 드라마");
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}




Share article