인프런 커뮤니티 질문&답변
패킷 보내는 두가지 방법 질문
작성
·
22
0
// 입장 사실을 신입 플레이어에게 알린다.
{
Protocol::S_ENTER_GAME enterGamePkt;
enterGamePkt.set_success(success);
Protocol::PlayerInfo* playerInfo = new Protocol::PlayerInfo();
playerInfo->CopyFrom(*(player->playerInfo));
enterGamePkt.set_allocated_player(playerInfo);
//enterGamePkt.releasse_player();
SendBufferRef sendBuffer = ServerPacketHandler::MakeSendBuffer(enterGamePkt);
if (auto session = player->session.lock())
session->Send(sendBuffer);
}이 부분에서 궁금한게 두가지 있습니다.
1. 이부분에서 두가지 방법이라는게 이렇게 두가지가 맞나요?
동적할당, 복사, set_allocated_player 이렇게 해서 sendbuffer하기
or 동적할당, copy없이 그냥 player->playerInfo를 set_alloc 한 다음 sendbuffer 마치고 enterGamdPkt.release_player() 호출하기.
아래 코드처럼 정적할당된 enterGamePkt에 기본으로 있는 playerInfo를 mutable get해서 copy 하면 안되나요? 이렇게 하면 메모리는 신경안써도 될거같아서요.
enterGamePkt.mutable_player()->CopyFrom(*(player->playerInfo));
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!





