E D R , A S I H C RSS

채팅�리

프로그램 구조


� 채팅프로그램� 다른 여� 채팅 프로그램처럼 서버와 ���언트 부분으로 나누어져 있다.

서버 프로그램 구조

서버쪽�서는 � 4개� Thread가 사용�었다. Thread는 메모리를 공유하면서� �립�으로 실행� 수 있는 프로세스 단위� 할 수 있겠다. 4개� Thread는 다�과 같다.


ReceiveEvent : ���언트� �벤트를 받는 부분�다. � �벤트가 StatusDisplay �래스� �용�다. ��� �벤트는 다�과 같다.

1. 사용�가 접�한다.
2. 사용�가 나간다.

UserListControl : 사용�� 접�� 관리한다. 채팅� 접�하려는 사람� �하는 ID를 기존� 사용�들과 비�하여, 없으면 채팅 접�� 허�하고, 있으면 다른 ID를 사용할 것� 권한다.

Broadcast : ���언트�리 주고받는 대화 내용� 전달하는 �래스�다.

SendUser : ���언트 사용�가 현재 접��어 있는 사람들� ID를 알 수 있게 List� 사용� �름� 보내주는 �래스�다.

���언트 프로그램� 구조


���언트쪽�는 4개� Thread가 있다. JFrame� 사용한 �래스가 2개 있는�, 하나는 Login때 ID사용 허가를 확�한는 프레임�고, 다른 하나는 채팅� 기본 프레임�다. 4개� Thread는 다�과 같다.

Login : 현재 채팅� 사용중� ID와 사용하고� 하는 ID를 비�하여, 채팅 참가 허가 유무를 확�한다.

ChatMain : 채팅� 주 �터페�스를 관리하는 �래스�다. � �래스�서 대부분� GUI를 관리하고, 채팅메세지보여준다. �한 채팅� 접�한 사람들� ID를 보여준다.

ReceiveMessage : 서버로부터 전달ë�˜ëŠ” 메시지를 받아서 ChatMain í�´ëž˜ìФì�˜ 메시지 ìœë ¥ 화면ì—� 보여주는 ì—­í• ì�„ 한다.

SendMessage : 서버로 메시지를 보낸다.

UserList : ChatMain �래스� 사용� List� 접�한 사용� ID를 보여주는 기능� 한다.

채팅� �작 �리


채팅� �작�리는 실제로 채팅� �루어지는 과정� 예로 추�하면서 설명하기로 한다.

서버� 시작

서버가 시작하면 ReceiveEvent �래스�서 ���언트로부터 전달�는 Event를 기다리는 �시� StatusDisplay 쓰레드와 다른 쓰레드들� 시작한다.

���언트� 시작

���언트가 시작�면 Login� 위한 ID 체�를 한다. 서버� 접�하여 서버� 저장�어 있는 사용� ID Vector� 사용하고�
하는 ID와 같� ID가 있는지 없는지 비�한 후 결과를 ���언트� �려준다. �미 사용중� ID�면 다른 ID를 사용할 것� 권하고, 사용가능하다면 채팅� 시작한다.

���언트� 대기실 입장

���언트가 대기실� 입장하면 내부�으로 ���언트는 서버쪽� 새 사용�가 접�했다는 메시지를 보낸다. 그러면서, Login 프레임대신 ChatMain 프레임� 보�게 한다. �제부터 대기실�서 채팅� 가능하게 �다. 서버쪽�는 새 사용�가 대기실� 들어왔다는 것� 보여준다.

다른 사용�� 접�

새 사용�가 접�� 시�하면 처�과 마찬가지로 사용� ID 체�를 하게�다. ID 사용 확�� 한 후� 대기실� 접��한다. 대기실� 접�하면, 기존� 대기실� 있� 사용�들� 사용� ID를 보여주는 리스트� 새로 들어오는 사용�� 리스트가 추가�면서, 채팅화면� 새로운 사용�가 들어왔다는 메시지가 나오게 �다.

실질�� 채팅

2명 ��� 사용�가 접�한 �태�므로 실제로 채팅� 가능하게 �다. 채팅� 내용� ���언트� TextField� 내용�
DagagramPacketì—� 미리 기억ë�œ 서버쪽ì�˜ 주소와 í�¬íŠ¸ë²ˆí˜¸ë¥¼ 추가하여 네트워í�¬ë¡œ 보낸다. ì�´ 메시지를 서버가 받아서 등ë¡�ë�œ 모든 í�´ë�¼ì�´ì–¸íŠ¸ìª½ìœ¼ë¡œ ë³´ë‚´ 모든 í�´ë�¼ì�´ì–¸íŠ¸ê°€ 메시지를 받아 채팅화면ì—� ìœë ¥í•  수 있게한다.

채팅 종료

채팅� 종료할 때는 채팅 윈�우� 종료 버튼� 누르면 윈�우 종료 �벤트가 발�한다. ���언트는 채팅 종료를 확�하는 옵션 패�� 보여준 후, 서버쪽� 채팅� 종료한다는 내용� 보낸다. �때 보내는 내용�, �신� 사용하고 있는 ID를 제거, �신� 주소를 제거, 사용� 1명� �소등�다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:15
Processing time 0.0070 sec