300x250


assignment3.pdf

1. How to install your program

프로그램은 java로 구현된 프로그램으로 P3_20156161_KimJinhong.tar.gz 파일을 압축해제하고 아래 2.(2)와 같이 실행.

 

2. How to run your program

(1) 압축에 포함된 파일은 아래와 같음

p3/src/main.java와 다른 java 파일 : 프로그램 소스코드

p3/bin/assi3.jar: 프로그램 실행을 위한 jar 파일

 

(2) 프로그램 실행 방법

Terminal 창에서 root 권한(sudo)으로 p3/bin/내에 있는 assi3.jar를 실행

p3/bin/ 경로로 이동한 뒤 -> sudo java jar assi3.jar

example : sudo java jar assi3.jar

 

(3) 프로그램 테스트 방법

메뉴 1번을 실행시키고 hieracy가 등록되면 테스트 한다.
(오류 발생시 다시 시작해주세요.(동기화 문제로 가끔 오류 발생..))

[그림 0] hieracy 오류

 

3. Describe of the program

시작하면 다음과 같이 메뉴를 보여주고 프로세스끼리 연결을 시작함.

[그림 1] 프로그램 실행 후 첫 화면

show bot hieracy
1번을 선택하면 super-bot들과 child-bot을 보여줌.
(동기화 타이밍 문제로 출력이 다 되지 않을 경우 한번더 1을 눌러주세요)
(child-bot#-@ : # = superbot의 번호, @ = childbot의 번호)

[그림 2]  1) hieracyRead

    (1) 2번을 누르고 host를 입력시 host 정보를 출력    
   
[그림 3] 지정한 host의 정보 출력
(2) 2번을 누르고 date를 입력시 hostdate를 출력
 
[그림 4] 지정한 hostdate 출력

Create
다음과 같이 명령을 입력시 /home/tt 디렉토리를 생성하고, 입력한 파일을 생성함.(파일이 존재하면 덮어씀)
 
[그림 5] create 명령 전

명령을 실행하기 전의 디렉토리에는 test 디렉토리 하나만 존재함.
 
[그림 6] create 명령 실행

입력한 botpctest라는 파일을 만드는 명령어를 실행함.
 
[그림 7] create 명령 후

tt라는 디렉토리가 생성되었고, test.txt파일이 생성 됨. 파일의 내용으론 입력한 bot들의 이름이 적혀있음.

Sendpacket
개수를 입력하고 대상을 입력하면 패킷을 전송한다.
 
[그림 8] 패킷 전송

패킷은 UDP 패킷이며 child-bot에서 입력한 대상으로 전송 된다.
사각형입니다.  
[그림 9] 캡쳐된 패킷
위 그림을 보면 UDP패킷이 200개가 전송되었음을 볼 수 있다.

Search
연결된 bot들의 상태를 검색 한다.
 
[그림 10] bot 검색
살아 있는 봇들에 대해서는 alived로 표시 된다., 죽어 있는(연결되어 있지 않은) 봇은 대답하지 않는다.

[그림 11] kill super-bot1.

super-bot1을 죽이는 예를 보이면, 아래와 같이 super-bot1에 연결된 child-botdis-connected 되었다는 것을 볼 수 있다.
[그림 12] child-bot 1-1 ~ 1-8 disconnected

그리고 다시 Search를 하면 연결되어 있지 않은 super-bot 1child-bot 1-* 들은 응답하지 않으며 나머지 봇들은 alived라고 응답한다.
 
[그림 13] 재 탐색

4. Note

소스코드 설명

main.java : 실행 명령 번호 입력, 서버와 클라이언트 스레드 실행.

Server.java : 포트 할당 및 프로세스 실행, 각 클라이언트의 소켓의 이름표 저장.

Client.java : 포트할당 및 실질적으로 수행될 코드가 담긴 InputThread를 실행

Countclient.java : superbot들간의 연결을 위한 클라이언트 포트를 지정하고 실행

InputThread.java : 메뉴에서 받은 각 명령들을 수행.

listen.java : 클라이언트에서 들어오는 클라이언트의 이름을 받아서 해시맵에 저장.

 

반응형

+ Recent posts