반이중 통신(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