in GomokuClient/GomokuClient/NetController.cpp [139:191]
void NetController::ProcessPacket()
{
while (true)
{
PacketHeader header;
if (false == mRecvBuffer.Peek((char*)&header, sizeof(PacketHeader)))
break;
if (header.mSize > mRecvBuffer.GetStoredSize())
break;
switch (header.mType)
{
case PKT_SC_START:
{
GameStartBroadcast recvData;
bool ret = mRecvBuffer.Read((char*)&recvData, recvData.mSize);
assert(ret);
if (mPlayerId == std::string(recvData.mFirstPlayerId))
{
GGuiController->OnGameStart(StoneType::STONE_BLACK, std::string(recvData.mOpponentName));
}
else
{
GGuiController->OnGameStart(StoneType::STONE_WHITE, std::string(recvData.mOpponentName));
}
}
break;
case PKT_SC_BOARD_STATUS:
{
BoardStatusBroadcast recvData;
bool ret = mRecvBuffer.Read((char*)&recvData, recvData.mSize);
assert(ret);
GGuiController->OnStatusChange(recvData);
}
break;
default:
assert(false);
}
}
}