pkcserver

16
PKC Project - Server

Upload: yoonjong-choi

Post on 30-Jul-2015

113 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: pkcserver

PKC Project - Server

Page 2: pkcserver

PKC Project 소개 Server 구성

◦ Common Component◦ Server Component◦ Client Component

Proto-Type

목차

Page 3: pkcserver

PKC Project

Page 4: pkcserver

프로젝트 시작 계기◦ DirectX 3D 프로그래밍 스터디와 소켓 프로그래밍

스터디를 진행하면서 “우리도 온라인 게임을 만들어보자”로 시작한 프로젝트

프로젝트에서의 역할◦ 게임 서버 (Network Server + DataBase + Client

Connection) 개발

PKC Project 소개

장르 : Action RPG!

Page 5: pkcserver

Server 구성

Page 6: pkcserver

서버와 클라이언트를 TCP/IP 로 연결하는 라이브러리 라이브러리를 이용한 서버 , 클라이언트 구현

Server 구성

ServerLib

ClientLib

Implement Server Implement Client

Page 7: pkcserver

최신 서버 라이브러리 구성◦ 서버와 클라이언트 간 I/O 제어◦ I/O 에 들어갈 함수를 tool 을 이용해 작성

작성한 함수는 tool 에서 함수 원형 및 헤더 파일 생성 ( 소스파일 )◦ 서버 / 클라이언트 프로그램은 작성된 함수의 내용을 구현

개인 목표◦ 서버와 클라이언트 간 I/O 제어◦ I/O 함수를 직접 작성 후 서버 / 클라이언트에 구현

Server 구성

Page 8: pkcserver

Common◦ 소켓 및 I/O 데이터◦ Log

Server/Client Library◦ TCP/IP 연결 관리◦ 데이터베이스 접근

구현된 Server/Client◦ Business Logic 구현◦ Library 를 이용하여 데이터베이스 접근

Server 구성

Page 9: pkcserver

Library 구성

Common Component

클래스 기능CSocketInfo 소켓 및 I/O 데이터 관리CLog 로그 관리PacketHeader I/O 패킷 헤더

Page 10: pkcserver

Library 구성

Server Component

클래스 기능CServer 클라이언트 연결 관리CIOProcessor 입 / 출력 처리 전담CDispatcher 입력 패킷 처리자CDispatchable 패킷 처리자 구현물CSender 출력자CClientGroup Client 소그룹 ( 파티 , 길드 , …)

Page 11: pkcserver

서비스 시나리오◦ DB 미구현

Server ComponentCommunication Ob-jectClass Object

Data Structure

Kernel Object

call system funcdata move-mentmanage & impl.

client

CServer

socket

map

IOCP

CIOProces-sor

sendqueu

e

recvqueu

e

Dis-patcher

CDispatch-able

Busi-nessLogic

di-aptchmap

con-nect

regis-tersocketto IOCP

man-agesocket

get IOCPcompletion sta-tus

send

recv

queuere-ceiveddata

de-queuere-ceiveddata

manage dia-patchables

callCDispatch-able::dispatch

implementsdispatch-able

queue send data

dequeue send data

CSender

Page 12: pkcserver

Library 구성

Client Component

클래스 기능CConnector 서버 연결자CIOProcessor 입 / 출력 제어 전담CSender 출력자CReceiver 입력자

Page 13: pkcserver

서비스 시나리오◦ DB 미구현◦ CDispatcher 미구현

Client Component

CIOProces-sor

Busi-nessLogic

sendqueu

e

recvqueu

e

CConnec-tor

PKC Server

send/recvcon-nect

delegate connection to CIOProcessor queue

re-ceiveddata

dequeuereceiveddata

queuesenddata

de-queuesenddata

CRe-ceiver

CSender

Communication Ob-jectClass Object

Data Structure

call system funcdata move-mentmanage & impl.

Page 14: pkcserver

Proto-Type

Page 15: pkcserver

서버 / 클라이언트 간 I/O 제어◦ I/O Component(CIOProcessor, CDispatcher,

CSender, CReceiver, …)

Business Logic 과 I/O 함수를 연결◦ Business Logic : 채팅 프로그램

Proto-Type

Page 16: pkcserver

Project Specification◦ Windows : higher than Windows Vista◦ Language : higher than C/C++(C99/C++98)◦ IDE : Microsoft Visual Studio 2010

다음 과제◦ 패킷 헤더 개량◦ 클라이언트 Dispatcher 구현◦ DataBase 엔진 연결자 구현

Proto-Type