ChoiSeonMun / fixme_MyFirstGameServer

코드를 수정해야 하는 온라인 게임 서버 프로그램(IOCP 네트워크 사용)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

코드를 수정해야 하는 온라인 게임 서버 프로그램(IOCP 네트워크 사용)

본인이 처음 만든 상용 온라인 게임 서버 이다.(클라이언트는 없다)

  • 중국에 몇 개월간 서비스 되었고, 회사는 망했다.

게임은 보드 게임으로 '바카라'이다.
이 게임 서버는 '영진 출판사'의 '온라인 게임 개발을 위한 Network Server Programming' 라는 책을 크게 참고 하였다.

  • 그래서 이 책을 구해서 본다면 소스 코드 파악이 아주 쉬워질 것이다.

기본적으로 아래와 같은 문제가 있으므로 이 프로젝트를 클론 한 후 수정해 보기 바란다

(수정 후 알려주면 여기에 링크를 게시하겠다^^)

  1. IOCP 스레드를 1개만 만들어서 사용하고 있다.

  2. WSASend는 호출과 즉시 완료된다고 가정하고 있다

  • 보낼 데이터를 버퍼로 보관하고 있어서 최악의 상황이 아니면 문제는 나타나지 않음
  1. DB 처리를 패킷 처리 스레드에서 바로 처리하고 있다.
  • DB 대기 발생
  1. 유저 및 객체 관리를 링크드 리스트 자료 구조(게다가 직접 만든)를 사용하고 있어서 복잡하고 위험하다

  2. accept 완료를 리모트가 접속 후 패킷을 보낸 이후에 감지한다.

  • 악의적인 목적으로 리모트가 접속은 하루 패킷을 보내지 않으면 해당 세션은 낭비가 된다.
  1. OnTransFunc 배열 중 할당하지 않은 곳 접근 방어가 없음

About

코드를 수정해야 하는 온라인 게임 서버 프로그램(IOCP 네트워크 사용)


Languages

Language:C++ 91.8%Language:C 8.2%