검색어 입력폼

다중 접속 서버의 구현방법: 멀티플렉싱 서버

저작시기 2006.11 |등록일 2006.11.20 한글파일한컴오피스 (hwp) | 13페이지 | 가격 500원

소개글

다중 접속 서버의 구현방법으로는 fork() 함수를 이용한 멀티타스킹 서버, select() 함수를 이용한 멀티플렉싱 서버, thread 생성함수를 이용한 멀티쓰레드 서버 방식이 있습니다. 본 실험․실습에서는 select() 함수를 이용한 멀티플렉싱 서버의 구현방법에 관해 알아봅시다.
멀티타스킹/멀티쓰레드 서버는 여러 클라이언트의 서비스 요청에 대한 서비스 제공을 위하여 메인 프로세스는 서비스 요청을 받아들이고 실제 각 클라이언트에 대한 서비스 제공은 각각의 독립적인 프로세스/쓰레드가 전담하도록 함으로써 효율적인 서비스 제공이 이루어지도록 한 서버의 구현방식이다. 반면, 멀티플렉싱 서버는 하나의 프로세스가 시분할(Time Sharing) 방식으로 교대로 서비스를 제공해 주는 서버의 구현방식이다.
예를 들어 설명하면, 전자는 한 교실의 학생들의 실험실습을 위해 전담 조교를 할당하여 강의서비스가 이루어지도록 한 것이라면, 후자는 학생들의 질문을 수업시간 중에 받아 차례로 답변해 주는 경우를 생각해 볼 수 있다.

목차

목적
기초지식
설비 및 준비사항
실습절차 및 실습프로그램
실습결과
결론 및 토의

본문내용

1. 목 적
다중 접속 서버의 구현방법으로는 fork() 함수를 이용한 멀티타스킹 서버, select() 함수를 이용한 멀티플렉싱 서버, thread 생성함수를 이용한 멀티쓰레드 서버 방식이 있습니다. 본 실험․실습에서는 select() 함수를 이용한 멀티플렉싱 서버의 구현방법에 관해 알아봅시다.
멀티타스킹/멀티쓰레드 서버는 여러 클라이언트의 서비스 요청에 대한 서비스 제공을 위하여 메인 프로세스는 서비스 요청을 받아들이고 실제 각 클라이언트에 대한 서비스 제공은 각각의 독립적인 프로세스/쓰레드가 전담하도록 함으로써 효율적인 서비스 제공이 이루어지도록 한 서버의 구현방식이다. 반면, 멀티플렉싱 서버는 하나의 프로세스가 시분할(Time Sharing) 방식으로 교대로 서비스를 제공해 주는 서버의 구현방식이다.
예를 들어 설명하면, 전자는 한 교실의 학생들의 실험실습을 위해 전담 조교를 할당하여 강의서비스가 이루어지도록 한 것이라면, 후자는 학생들의 질문을 수업시간 중에 받아 차례로 답변해 주는 경우를 생각해 볼 수 있다.


....
실습 절차 및 실습 프로그램
본 실습에서 각각의 클라이언트는 입력받은 데이터를 서버로 전송하고, 서버는 이를 모니터에 출력한 후 다시 클라이언트에게 되돌려 주고, 각 클라이언트는 이를 모니터에 출력하는 실습1의 Echo 서비스를 기존의 멀티타스킹 서버가 아닌 멀티플렉싱 서버에 의해 제공되도록 하고자 합니다.

먼저 멀티플렉싱 서버 구현을 위한 기본 함수인 FD_ZERO(), FD_SET(), select(), FD_ISSET(), 그리고 FD_CLR() 함수의 기능을 숙지한 후, 이를 이용하여 실습 1의 서버 프로그램을 멀티플렉싱 서버 프로그램으로 변환합니다.
그리고 변경 제작한 멀티플렉싱 서버 프로그램에는 멀티플렉싱 서버 구현을 위한 단계별 핵심이 설명되어지도록 커멘트를 달도록 하세요.

본 실습은 윈도우 운영체제 상에서 이루어지며 윈 소켓을 이용합니다. 윈 소켓의 기본 API와 소켓의 생성, 연결 설정, 데이터 전송, 연결 해제라는 기본 루틴을 이용하여 기본 틀을 작성하였으며, 프로그램에서 버퍼의 크기는 1024 byte, 서비스 포트는 8198번입니다.
다운로드 맨위로