Midterm

단국대학교 멀티미디어공학전공 분산멀티미디어서비스 (2016년 봄학기) 중간고사 프로그래밍

– 날짜: 2016년 4월 14일

– 제출일시: 2016년 4월 27일까지 이러닝으로 제출 & 2016년 4월 28일 수업시간에 보고서(주요코드 설명 및 실행결과 화면캡쳐) 제출

– 내용 : C++/Java Client/Server Program using Blocking TCP, UDP, Thread, FileIO

– 준비자료 :

WOEIDLIST
ThreadedTCPServerWOEIDDebug & tcpClientQuery
UDPServerWOEIDDebug & JavaUDPClientQuery

 

– 실습문제

  1. WOEID.csv 파일을 읽어서 WOEID의 리스트를 만든다. (10점)

-WOEID (World On Earth ID)는 야후에서 사용하는 위치정보이다.

-WOEID 클래스는 ID, CityName, CountryName, Latitude, Longitude 멤버를 갖고,

멤버 정보를 출력하는 print() 메소드를 갖는다.

-WOEIDList 클래스는 WOEID의 리스트를 멤버로 갖고,

파일을 로딩하는 load(filename), 도시이름으로 ID를 찾는 find(cityname, &woeid), 리스트 전체를 출력하는 print() 메소드를 갖는다.

 

  1. Thread와 Blocking TCP를 사용하여, 클라이언트에서 쿼리하는 CityName을 가지고 WOEID 정보를 클라이언트에 보내주는 서버 프로그램을 만든다. (30점)

-서버 실행파일은 ThreadedTCPServerWOEIDDebug.zip으로 제공함.

 

WOEIDList gList; // 전역변수 (서버프로그램 시작 시, 파일로딩해서 gList로 가짐)

void * ExecuteQueryThread(void *param) { // 스레드에서 클라이언트에서 쿼리한 데이터를 찾고, 정보를 찾았으면 클라이언트로 보내는 예시

// client->read(buffer, ….)

// if (gList.find(buffer, id)) sprintf(sendbuffer, “%d,%s,%s,%f,%f”, ….)

// else sprint(sendbuffer, “%s NOT FOUND”, buffer);

// client->write(sendbuffer, ….)

}

 

  1. ThreadedTCPServerTest로 접속하여, 도시이름으로 WOEID를 쿼리하는, Java 코드로 작성한, 클라이언트 프로그램을 만든다. (20점)

-힌트: JavaTCPClient를 사용해서 작성하면 됨.

– ThreadedTCPServerTest로 접속하여, 도시이름으로 WOEID를 쿼리하는, C++ 코드로 작성한, 클라이언트 프로그램 소스 코드 (tcpClientQuery.zip)는 제공함.

 

  1. UDP를 사용하여, 클라이언트에서 쿼리하는 CityName을 가지고 WOEID 정보를 클라이언트에 보내주는 서버 프로그램을 만든다. (20점)

-힌트: 작동원리는 TCP와 동일함.

-서버 실행파일은 UDPServerWOEIDDebug.zip으로 제공함.

 

  1. UDPServerTest로 접속하여, 도시이름으로 WOEID를 쿼리하는, C++ 코드로 작성한, 클라이언트 프로그램을 만든다. (20점)

-힌트: UDP의 client를 사용해서 작성하면 됨.

– UDPServerTest로 접속하여, 도시이름으로 WOEID를 쿼리하는, Java 코드로 작성한, 클라이언트 프로그램 소스코드 (JavaUDPClientQuery.zip)는 제공함.

 

  1. Java 코드로 작성한, 동일한 Threaded Blocking TCP 서버와 UDP 서버 프로그램 작성은 Extra Credit. (20점)

 

HW5

TCP (TCP Non-blocking) vs. ThreadedTCP (TCP Blocking & Thread)

UDP vs ThreadedUDP vs GUIThreadedUDP vs GUINonThreadedUDP

실행결과 및 코드 분석 리포트

HW4

Java Threaded TCP program 에서

ThreadedTCPClientTest 클래스에 Runnable 인터페이스를 상속(강의내용 2번째 방식)하는 대신

Thread 클래스를 상속(강의내용 1번째 방식)하는 방식으로 구현하기.

소스코드와 프로젝트 전체 그리고 실행화면을 포함하는 보고서 1~2 장을 zip해서 올려줄것.

HW3

국제 VR 영상 페스티벌 참여하고 2~3장 참여후기 리포트

  • 시간 : 331일 (목) 1900분 ~ 2330
  • 장소 : 판교 경기창조 혁신 센터 국제회의장 지하 2층