게임 서버 2

이어 앞의 게임 서버 1을 작성하여 spserver+rapidxml로 윈도우즈 플랫폼에 있는 가난한 사람들 버전의 서버를 실현하여 지정된 게임에 대해 점수 랭킹과 댓글판 기능을 수행할 수 있다.잠시 후에 도메인 이름 신마를 다 만들면 나에게 온라인 메시지를 남길 수 있다.가난한 사람판 전속 블로그?허허
기록해야 할 몇 가지 사항:
일.spserver에서 SP_HandlerFactory 및 SP_Handler 및 SP_LineMsgDecoder를 사용합니다.네트워크 이벤트 처리는 SP_Handler 하위 클래스에서 함수 재부팅을 완료한 SP_HandlerFactory의 하위 클래스 인스턴스는 하나의 TCP 연결에 대응하고 SP를 유지합니다_Handler 하위 클래스의 인스턴스입니다.SP_LineMsgDecoder의 인스턴스는 SP_Handler에서는 다음과 같은 실제 네트워크 데이터를 얻을 수 있습니다.
SP_LineMsgDecoder *decoder=(SP_LineMsgDecoder*)request->getMsgDecoder();
const char* tmp = decoder->getMsg();
그러면 getMsg();char*의 데이터가 반환됩니다.일반적으로 인터넷 데이터 보고서의 형식은 우리가 정의한다. 그러면 xml로 조작하면 매우 편리하다. 다음은rapidxml로 getMsg()를 해석한다.값 문자열의 일부 코드를 반환합니다.
if (XMLRoot->first_attribute("name")) strcpy(node.name, XMLRoot->first_attribute("name")->value());
if (XMLRoot->first_attribute("score")) strcpy(node.score, XMLRoot->first_attribute("score")->value());

2. spserver에서 파일 조작과 협동하여 작업을 해야 한다면 파일을 잠그십시오. 병렬 과정에서 접근 충돌이 발생할 수 있기 때문입니다.
sp_thread_mutex_t mMutex;//정의
sp_thread_mutex_init(&mMutex,NULL);//초기화
sp_thread_mutex_lock(&mMutex);//자물쇠를 채우다
sp_thread_mutex_unlock(&mMutex);//잠금 해제
sp_thread_mutex_destroy(&mMutex);//분석하여 구성하다
만약 여전히 안전하지 않다고 생각한다면 (나는 검증하지 않았고 신중했을 뿐이다.) 이를 바탕으로 단일 모드를 다시 사용할 수 있다.

좋은 웹페이지 즐겨찾기