실습 Project (데이터통신/분산시스템)

1. 아래와 같은 클라이언트(echo_client.c)와 서버(echo_server.c) program이 있다.

comedudb (210.93.99.64)

TCP/UDP

Server

IP Network

comedu (210.93.99.60)

TCP/UDP

Client

(1) 서버 process를 comedudb에서 실행.

(2) 클라이언트 process를 'comedu'에서 실행. (같은 호스트-'comedudb'-에서 실행하여도 됨.)

(3) 클라이언트가 서버에 연결되면 클라이언트는 터미널로 입력받은 문자열을 서버에 전달.

(4) 서버는 클라이언트로부터 전달받은 문자열을 되돌려주고, 클라이언트는 이를 자신의 터미널에 출력.

(주의)

1. 각 조 서버의 port no.는 각각 다르게 하여야 함.

(예) test01: 3001  test02: 3002  test03: 3003 .............

(실행 예- 서버와 클라이언트 호스트가 같은 경우)

comedudb에서 echo_server.c 및 echo_client.c)의 코드를 각각 작성.

[comedudb]$ telnet comedudb.knue.ac.kr <enter>	; comedudb에 telnet 연결(server 실행터미널)

[comedudb]$ cc echo_server.c -o echo_server <enter>	; 서버 C program compile.

[comedudb]$ ./echo_server 3001 & <enter>	; 서버 process를 background 실행.

[comedudb]$ telnet comedudb.knue.ac.kr <enter>	; comedudb에 telnet 연결 (client 실행터미널)

[comedudb]$ cc echo_client.c  -o echo_client <enter>	; 클라이언트 C program compile.

[comedu]$ ./echo_client  210.93.99.64  3001 <enter>

Hello, This is test01...	; 서버와 연결 후 문자열 입력

Hello, This is test01...	; 서버가 문자열을 echo한 것을 받아서 출력

<주의> test 할 때 필요없는 server process는 반드시 '종료‘시킬 것.

[comedu]$ ps <enter>

1102  serv

[comedu]$ kill -9 1012 <enter>

2. 위와 같은 기본 program을 upgrade할 것.

(예1) ftp 프로그램 기능 추가

- 서버 파일의 내용을 파일로 다운로드 받을 수 있다.

- 클라이언트 파일을 업로드할 수 있다.

- 서버 디렉토리의 내용을 볼 수 있다.

- 서버의 특정 디렉토리로 옮길 수 있다.

- 등등

(예2) chatting 프로그램으로 변환

- 서버와 클라이언트간에 메시지를 주고 받을 수 있다.

- 여러 클라이언트들이 동시에 서버에 연결하여 채팅할 수 있다.

- 서버에 대화방을 여러 개 만들 수 있다.

- 등등

(예3) 전자상거래 목록 제시 프로그램으로 변환

- 서버 파일에 현재 판매하는 상품의 정보가 들어 있을 때, 클라이언트가 원하는 상품의 정보를 볼 수 있다.

- 등등

(예4) 그 외 다른 통신 프로그램 등등으로 변환

3. 프로그램 기능/구조 설명 및 Demo와 source code 제출.

- 인터넷의 통신 프로그램들을 검색하여 참고로 해서 기본 프로그램에 기능을 추가하는 것은 무관하나 반드시 본인이 coding할 것.