
반이중 통신(Half-Duplex Communication)
- 통신이란 한 번에 한 방향으로만 정보를 전송할 수 있는 통신 방식이다. → 두 장치가 데이터를 송수신할 수 있지만, 동시에는 불가능하고 하나의 작업만 수행한다.
- 동시에 양방향 통신이 불가능하다는 단점이 있다.
- 구현이 비교적 간단하고 통신 기기의 복잡성과 비용을 줄이는데 유리하다.
반이중 코드
- 서버 코드
package ex17.half2;
import java.io.*;
import java.net.*;
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 requsetMsg = br.readLine();
            System.out.println("클라이언트로부터 받은 메세지 : " + requsetMsg);
            // 버퍼 만들기 (send)
            PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
            if (requsetMsg.equals("1")) {
                pw.println("영화");
            } else if (requsetMsg.equals("2")) {
                pw.println("드라마");
            } else {
                pw.println("프로토콜을 확인하세요 : 1은 영화, 2는 드라마");
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}- 클라이언트 코드
package ex17.half2;
import java.io.*;
import java.net.Socket;
public class Client {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("localhost", 20000);
            PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);
            pw.println("3");
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String responseMsg = br.readLine();
            System.out.println("서버로 부터 받은 메세지 : " + responseMsg);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}Share article