본문 바로가기
게임 서버/[Inflearn_rookiss]올인원_클라&서버 연동

16. Service

by 헛둘이 2023. 12. 11.

Service

- Service란 무엇일까? Service는 앞서 설명했던 일련의 과정들을 하나로 묶는 클래스다.
- Service는 Server, Client 총 2종류로 다시 나뉜다.
- 일련의 과정을 처음부터 다시 설명해보자면
서버의 경우 아래의 절차를 따른다.
1. 서버 소켓 생성 (직원 고용)
2. 해당 소켓을 현재 나의 아이피주소와 포트번호에 바인드 (매장 주소와 메뉴판 숙지)
3. Listen 함수를 호출해서 accept 요청을 받을 수 있는 상태로 전환
4. accept 요청을 받으면 클라이언트 소켓으로 받아서 보관하고, 그 소켓으로 해당 클라이언트와 통신
 
이 일련의 과정들을 묶어서 처리하는데,  Listener 클래스에서는 1~4번을 모두 처리하고 있다.
ServerService는 1~4번의 각각의 함수로 분리되어있는 기능 하나로 묶어서 하나의 함수에서 처리할 수 있게 한다.
 

bool ServerService::Start()
{
    if (CanStart() == false)
        return false;

    _listener = make_shared<Listener>();
    if (_listener == nullptr)
        return false;

    ServerServiceRef service = static_pointer_cast<ServerService>(shared_from_this());
    if (_listener->StartAccept(service) == false)
        return false;

    return true;
}

 
- 이번 강의에선 주로 스마트포인터에 관한 설명 위주였고 클라이언트 서비스에 관한 내용은 이후에 진행될 예정

'게임 서버 > [Inflearn_rookiss]올인원_클라&서버 연동' 카테고리의 다른 글

17. Session  (0) 2023.12.11
15. IocpCore  (0) 2023.12.11
14. IOCP  (0) 2023.12.11
13. Overlapped 방식  (0) 2023.12.11
12. Select 방식  (0) 2023.12.11

댓글