CODEDRAGON ㆍDevelopment/Java
멀티 캐스팅(Multicasting)
· 유니 캐스트 모델은 실시간 프로그램에서 서버의 정보를 모든 클라이언트가 공유할 때 문제점이 있습니다. 이런 문제를 해결하기 위해서는 일대 다 전송을 지원하는 멀티 캐스팅 구조를 사용해야 합니다.
· 한명의 클라이언트가 서버의 정보를 변경했을 경우 모든 클라이언트에게 전송함으로써 서로가 변경된 정보를 공유할 수 있는 애플리케이션을 만들 때 적합합니다.
· 멀티 캐스팅 프로그램을 작성하기 위해서는 유니캐스트에서 생성된 스레드(thread)를 저장하기 위한 공간(ArrayList)이 필요하며, 클라이언트에서는 자신이 보낸 메시지나 다른 클라이언트가 보낸 메시지를 받기 위한 스레드가 필요합니다.
ArrayList를 이용한 멀티캐스트 도식도
멀티캐스트 프로그램에 필요한 클래스
클래스명 |
설명 |
MultiServer |
· 모든 클라이언트의 TCP요청을 받아 소켓 객체를 생성합니다. · 소켓을 유지하기 위한 스레드를 생성하고 이 스레드를 저장할 Collection(ArrayList)을 생성하는 클래스입니다. |
MultiServerThread |
· 각각의 클라이언트의 소켓 객체를 유지하기 위한 스레드 클래스입니다. · 이 클래스는 멀티서버에 있는 컬렉션을 가지고 있기 때문에 다른 클라이언트에게 메시지를 보낼 수 있습니다. |
MultiClient |
· UI를 구현한 클라이언트 클래스입니다. · MultiClient클래스에서는 메시지를 보낼 때는 이벤트에서 처리하고, · 다른 클라이언트가 보낸 메시지를 받기 위해 MultiClientThread객체를 생성합니다. |
MultiClientThread |
· 다른 클라이언트의 메시지를 받기 위한 클래스입니다. |
'Development > Java' 카테고리의 다른 글
커넥션 풀 사용 이유 (0) | 2019.07.17 |
---|---|
Duke, the Java Mascot (0) | 2019.07.12 |
서버 프로그램 전체 도식도 (0) | 2019.06.24 |
Socket 클래스의 주요 메서드, 종료된 소켓과 연결된 소켓 - isClosed(), isConnected(), toString() (0) | 2019.06.21 |
OpenJDK - 시스템 환경 변수 설정하기 (0) | 2019.06.20 |