코드를 수정해야 하는 온라인 게임 서버 프로그램(IOCP 네트워크 사용)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
BaccaratServer
README.md

README.md

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

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

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

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

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

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

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

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

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

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

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

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