티스토리 뷰

 

코드 예시)

InputStream, OutputStream 둘 다 필요하다.

<서버측>

 

채팅 기본 기능 구현

멀티 스레드 활용
양방향 통신을 지속적으로 수행하기 위해 서버와 클라이언트 모두에서 키보드 입력을 받아 상대방에게 데이터를 보내고 받을 수 있도록 스레드와 while문을 활용하여 코드를 작성해봅시다.

 

,<서버측 코드>

  • ServerSocket 을 생성하고 클라이언트의 연결을 기다립니다.
  • BufferedReader 를 사용하여 클라이언트로부터 메시지를 읽고, PrintWriter를 사용하여 클라이언트에게 메시지를 보냅니다.
  • 키보드 입력을 받기 위해 BufferedReader를 사용합니다.
  • 클라이언트로부터 데이터를 읽는 스레드와 키보드 입력을 클라이언트로 보내는 스레드를 각각 실행합니다.

 

 

Thread의 join() 메서드 - 역할과 기능

  1. 스레드 동기화: join() 메서드를 사용하여 여러 스레드가 순서대로 종료되도록 할 수 있습니다. 메인 스레드는 join() 메서드를 호출한 스레드가 작업을 마칠 때까지 기다립니다.
  2. 프로그램 흐름 제어: join() 메서드를 통해 스레드가 완료되기 전까지 메인 스레드가 종료되지 않도록 보장할 수 있습니다. 이는 프로그램이 모든 작업을 완료하기 전에 종료되는 것을 방지합니다.
  3. 정확한 종료 시점: join() 메서드를 사용하면 특정 스레드가 완료되기 전까지 다른 작업을 진행하지 않도록 제어할 수 있습니다. 이를 통해 정확한 종료 시점을 확인할 수 있습니다.

 

<클라이언트 측>

  • Socket 을 생성하여 서버에 연결합니다.
  • BufferedReader를 사용하여 서버로부터 메시지를 읽고, PrintWriter를 사용하여 서버에게 메시지를 보냅니다.
  • 키보드 입력을 받기 위해 BufferedReader를 사용합니다.
  • 서버로부터 데이터를 읽는 스레드와 키보드 입력을 서버로 보내는 스레드를 각각 실행합니다.

 

'Java' 카테고리의 다른 글

네트워크 프로토콜  (0) 2024.05.30
1 : N 소켓 양방향 통신  (0) 2024.05.24
Java(1:1 단방향 통신(클라이언트측))  (0) 2024.05.22
Java(1:1 단방향 통신(서버측))  (0) 2024.05.22
Java(Socket)  (0) 2024.05.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함