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