"서버 프로그램 구조"의 두 판 사이의 차이

jjuiddong
이동: 둘러보기, 찾기
(Controller)
3번째 줄: 3번째 줄:
 
== ''' Controller ''' ==
 
== ''' Controller ''' ==
 
* 네트워크 통신을 제어하는 클래스들
 
* 네트워크 통신을 제어하는 클래스들
# CNetConnector
+
# ''' CNetConnector '''
* 통신하는 객체, 예를들어 CServer, CClient 는 이 클래스를 상속받아 구현한다.
+
#* 통신하는 객체, 예를들어 CServer, CClient 는 이 클래스를 상속받아 구현한다.
* 네트워크 통신에 필요한 정보와 기능들을 가진다.
+
#* 네트워크 통신에 필요한 정보와 기능들을 가진다.
# CNetController
+
# ''' CNetController '''
*** 싱글톤 클래스
+
#* 싱글톤 클래스
*** 네트워크 통신에 필요한 쓰레드와, 서버, 클라이언트 객체를 관리한다.
+
#* 네트워크 통신에 필요한 쓰레드와, 서버, 클라이언트 객체를 관리한다.
*** Dispatcher를 관리한다. 받고 싶은 프로토콜의 Dispatcher를 등록해야 서버가 해당 프로토콜을 받아서 분석할 수 있다.
+
#* Dispatcher를 관리한다. 받고 싶은 프로토콜의 Dispatcher를 등록해야 서버가 해당 프로토콜을 받아서 분석할 수 있다.
*** Accept, Work, Logic 쓰레드를 관리한다. 서버당 각각 1개씩 쓰레드를 생성하므로, 3개의 쓰레드를 가진다. 서버가 2개 생성되면 쓰레드는 6개가 된다.  
+
#* Accept, Work, Logic 쓰레드를 관리한다. 서버당 각각 1개씩 쓰레드를 생성하므로, 3개의 쓰레드를 가진다. 서버가 2개 생성되면 쓰레드는 6개가 된다.  
*** 서버/클라이언트 둘 모두에게 쓰이는 객체다.
+
#* 서버/클라이언트 둘 모두에게 쓰이는 객체다.
** CNetLauncher
+
# ''' CNetLauncher '''
*** 싱글톤 클래스
+
#* 싱글톤 클래스
*** CNetController 에서만 쓰인다.
+
#* CNetController 에서만 쓰인다.
*** 서버를 생성하거나, 클라이언트가 서버에 접속할 때 쓰이는 api를 따로 분리시킨것이다.
+
#* 서버를 생성하거나, 클라이언트가 서버에 접속할 때 쓰이는 api를 따로 분리시킨것이다.
** CRemoteClient
+
# ''' CRemoteClient '''
*** 서버에 접속된 클라이언트 정보를 가진다.
+
#* 서버에 접속된 클라이언트 정보를 가진다.
*** 서버 측에서만 쓰인다.
+
#* 서버 측에서만 쓰인다.

2013년 3월 2일 (토) 22:01 판

Network 라이브러리

Controller

  • 네트워크 통신을 제어하는 클래스들
  1. CNetConnector
    • 통신하는 객체, 예를들어 CServer, CClient 는 이 클래스를 상속받아 구현한다.
    • 네트워크 통신에 필요한 정보와 기능들을 가진다.
  2. CNetController
    • 싱글톤 클래스
    • 네트워크 통신에 필요한 쓰레드와, 서버, 클라이언트 객체를 관리한다.
    • Dispatcher를 관리한다. 받고 싶은 프로토콜의 Dispatcher를 등록해야 서버가 해당 프로토콜을 받아서 분석할 수 있다.
    • Accept, Work, Logic 쓰레드를 관리한다. 서버당 각각 1개씩 쓰레드를 생성하므로, 3개의 쓰레드를 가진다. 서버가 2개 생성되면 쓰레드는 6개가 된다.
    • 서버/클라이언트 둘 모두에게 쓰이는 객체다.
  3. CNetLauncher
    • 싱글톤 클래스
    • CNetController 에서만 쓰인다.
    • 서버를 생성하거나, 클라이언트가 서버에 접속할 때 쓰이는 api를 따로 분리시킨것이다.
  4. CRemoteClient
    • 서버에 접속된 클라이언트 정보를 가진다.
    • 서버 측에서만 쓰인다.
개인 도구
이름공간

변수
행위
둘러보기
도구모음