[C++] 엘리베이터 관리 프로토콜 소켓프로그래밍
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

n");
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");//Loop-back 주소
serv_addr.sin_port = htons(10000);//Port# 10000
//서버에 연결요청 및 오류처리
ret = connect(client_sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr));
if(ret==-1)
printf("connect error\n\n");
while(true)
{
fputs("input(q to quit) : ", stdout);
fgets(buf, BUFSIZE, stdin);
if(!strcmp(buf, "q\n")) break;
send(client_sock, buf, strlen(buf), 0);//서버에 Request를 보냄
for(int i=0; i recv(client_sock, buf, BUFSIZE-1, 0);//서버의 Response를 받음
fprintf(stdout, "Received message : %s\n", buf);
}
closesocket(client_sock);
WSACleanup();//라이브러리 해제
}
3. EMP의 실행 동작 (※Note : iamtaesu - 관리자 ID, 20062655 - 사용자 ID)
(1) 관리자 모드 접속 (Server - 왼쪽, Client - 오른쪽)
① 관리자 모드로 접속된 화면
Client Request : INIT (ID: iamtaesu, Password: 123123)
Server Response : 201 Connected the Management mode
관리자 모드로 접속되었음을 나타낸다.
② 엘리베이터를 10층으로 호출한 상황
Client Request : CALL (Floor: 10)
Server Response : 200 OK, 10 Floor
엘리베이터가 10층으로 호출되었음을 나타낸다.
③ 엘리베이터가 가동 중인 상태에서 10층으로 호출한 상황
Client Request : CALL (Floor: 10)
Server Response : 301 Busy
현재 엘리베이터가 가동 중이기 때문에 Client의 Call 명령을 수행할 수 없음을 나타낸다.
④ 엘리베이터의 실시간 전력 사용량 확인
Client Request : INFO
Server Response : 200 OK, 1291220420kW
서버는 현재 실시간 전력 사용량을 Return한다.
⑤ 엘리베이터를 절전모드로 전환
Client Request : CTRL (Mode: 0)
Server Response : 200 OK, Sleep Mode
(엘리베이터를 절전모드로 가동함을 나타냄)
⑥ 엘리베이터를 일반모드로 전환
Client Request : CTRL (Mode: 1)
Server Response : 200 OK, Normal Mode
(엘리베이터를 일반모드로 가동함을 나타냄)
⑦ EMP 접속해지
Client Request : LOUT
Server Response : 202 Log out the Management mode
관리자모드에서 로그아웃 되었음을 나타낸다.
(2) 사용자 모드 접속 (Server - 왼쪽, Client - 오른쪽)
① 사용자 모드로 접속된 화면
Client Request : INIT (ID: 20062655, Password: 123123)
Server Response : 201 Connected the Management mode
사용자 모드로 접속되었음을 나타낸다.
② 엘리베이터를 10층으로 호출한 상황
Client Request : CALL (Floor: 10)
Server Response : 200 OK, 10 Floor
엘리베이터가 10층으로 호출되었음을 나타낸다.
③ 엘리베이터가 가동 중인 상태에서 10층으로 호출한 상황
Client Request : CALL (Floor: 10)
Server Response : 301 Busy
현재 엘리베이터가 가동 중이기 때문에 Client의 Call 명령을 수행할 수 없음을 나타낸다.
④ 엘리베이터의 실시간 전력 사용량 확인
Client Request : INFO
Server Response : 403 Not have Authorization
권한이 없음을 나타낸다. (사용자모드이기 때문에)
⑤ 엘리베이터 가동모드 전환
Client Request : CTRL
Server Response : 403 Not have Authorization
권한이 없음을 나타낸다. (사용자모드이기 때문에)
⑥ EMP 접속해지
Client Request : LOUT
Server Response : 202 Log out the Management mode
사용자모드에서 로그아웃 되었음을 나타낸다.
(3) 오류 및 예외처리 (Server - 왼쪽, Client - 오른쪽)
① EMP 초기설정이 되기 전에 엘리베이터를 호출한 경우
Client Request : CALL
Server Response : 404 Not Connected
EMP 초기설정이 되지 않았음을 나타낸다.
② 존재하지 않은 ID를 입력한 경우
Client Request : INIT (ID: computer)
Server Response : 400 No Such User
엘리베이터 데이터베이스에 해당 사용자가 존재하지 않음을 나타낸다.
③ Password를 잘못 입력한 경우
Client Request : INIT (ID: iamtaesu, Password: abcd)
Server Response : 402 Illegal Password
엘리베이터 데이터베이스에 해당 사용자의 비밀번호가 일치하지 않음을 나타낸다.
④ EMP 초기설정 이후 존재하지 않는 명령어를 입력한 경우
Client Request : ABCD
Server Response : 300 Bad Request
존재하지 않는 명령어임을 나타낸다.
  • 가격2,000
  • 페이지수13페이지
  • 등록일2010.12.27
  • 저작시기2010.10
  • 파일형식한글(hwp)
  • 자료번호#645180
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니