자바로 구현한 멀티채팅 프로그램
- 최초 등록일
- 2017.03.18
- 최종 저작일
- 2015.06
- 압축파일
- 가격 1,000원
소개글
자바 스윙으로 구현한 채팅프로그램입니다. 대학 자바프로그래밍 기말고사 대체 과제로 제출하여 A+을 획득한 자료로 코어자바를 이용한 소켓프로그래밍의 이해에 많은 도움이 되실 것입니다.
이 프로그램은 두대 이상의 PC에서도 정상적으로 작동하며, 한대의 PC에서 실행하실 경우
두개를 실행하셔서 하나로는 방장으로 다른 하나로는 손님을 선택하신 후
127.0.0.1을 입력하시면 메시지가 상호 송수신 되는것을 확인하실 수 있습니다.
프로젝트 불러오는법 : 이클립스에서 실행하실 때 FILE > IMPORT > Existing Projects into Workspace를 선택하셔서 압축푸신 폴더를 지정하시면 불러와집니다.
프로그램 설명 :
1.총 10개의 클래스가 쓰였으며 최초 진입지점은 MultiChat클래스 입니다.이 클래스에 메인메서드가 있고
구름배경의 로그인 프레임셋이 갖춰져있습니다. 여기서 방장 혹은 손님을 선택할 수 있게되고 손님으로 선택하면 방장의 IP주소를 입력해야 합니다. 연결을 누르면 여기서 입력한 대화명과 IP주소를
MiddleConnectionEvent클래스로 전달합니다. MiddleConnectionEvent클래스는 이 정보들을 가지고 Server혹은 Client클래스로 각각의 환경에 맞는 클래스로 분기해줍니다. 그 다음 각각 분기된 Server와 Client클래스에서 FrameSet인스턴스를 생성하고 이 프레임을 대화창으로 이용하게 됩니다. 이때 Server는 서버소켓을 가지고있는 ServerAccept 쓰레드를 띄워놓습니다. 서버의 서버소켓이 클라이언트의 연결요청을 감지하게되면 ServerInputData쓰레드를 또 하나 띄우게 됩니다. 또한 하나의 ServerInputData에서 모든 클라이언트를 수신하는것처럼 보이지만 사실은 각각의 클라이언트의 메시지를 실시간으로 처리하는 쓰레드가 하나씩 띄워져있는 것입니다. 이렇게 되면 서버와 클라이언트의 입력스트림과 출력스트림을 서로 교차연결시켜 통신할 수 있게됩니다. 서버는 클라이언트가 보낸 메시지를 모두 가리지않고 받아들인 후 자신의 화면에 내용을 우선 찍습니다. 그리고 모든 클라이언트의 스트림을 통해 메시지를 다시 반송합니다. 클라이언트 측에서는 반송받은 메시지를 자신의 화면에 찍습니다. 즉, 클라이언트 자신이 보낸 메시지는 자신의 화면에 먼저 표시되고 보내지는 것이 아닌, 서버의 화면에 먼저 표시되어지고 반송하여 되돌아오는 메시지를 받아 자신의 화면에 표시하는것입니다.
컴파일 실행환경
JDK1.6이상
압축파일 내 파일목록
.settings/org.eclipse.jdt.core.prefs
bin/Client$1.class
bin/Client.class
bin/ClientInputData.class
bin/ClientOutputData.class
bin/FrameSet.class
bin/MiddleConnectionEvent.class
bin/MultiChat$1.class
bin/MultiChat.class
bin/Server$1.class
bin/Server.class
bin/ServerAccept.class
bin/ServerInputData.class
bin/ServerOutputData.class
image/Thumbs.db
image/background.png
src/Client.java
src/ClientInputData.java
src/ClientOutputData.java
src/FrameSet.java
src/MiddleConnectionEvent.java
src/MultiChat.java
src/Server.java
src/ServerAccept.java
src/ServerInputData.java
src/ServerOutputData.java
.classpath
.project
참고 자료
없음