콘텐츠로 이동

2021 08 27

2021-08-27

Java Socket

  • Socket - 서버 프로그램으로 연결 요청 - 데이터 전송 담당
  • ServerSocket & Socket - ServerSocket과 Socket은 동기(블로킹) 방식 - 서버 실행하는 main 스레드가 입출력 작업을 담당하게 되면 입출력이 완료될 때까지 다른 작업 할 수 없는 상태 - "accept(), connect(), read(), write()"의 경우 별도 작업 쓰레드 생성해서 병렬 처리하자 - 쓰레드 풀을 활용해서 클라이언트 폭증으로 인한 과도한 스레드 방지!
  • 소켓 송수신 과정(TCP/IP) 1. 서버: 클라이언트의 요청 받기 위한 준비 (ServerSocket) 2. 클라이언트: 서버에 접속 요청 (Socket) 3. 서버: 클라이언트의 요청 받아들임 (accept) 4. 클라이언트: 서버에 메세지 보냄 (BufferedWriter) 5. 서버: 클라이언트가 보낸 데이터 출력 (BufferedReader) 6. 서버: 클라이언트에 메세지를 보냄 (BufferedWriter) 7. 클라이언트: 서버가 보낸 메시지 출력 (BUfferedReader) 8. 클라이언트/서버: 종료 (close)