bool LLBC_Session::OnRecved(LLBC_MessageBlock *block) { std::vector<LLBC_Packet *> packets; #if LLBC_CFG_COMM_USE_FULL_STACK if (_protoStack->Recv(block, packets) != LLBC_RTN_OK) #else if (_protoStack->RecvRaw(block, packets) != LLBC_RTN_OK) #endif { this->OnClose(); return false; } LLBC_Packet *packet; for (size_t i = 0; i < packets.size(); i++) { packet = packets[i]; packet->SetSessionId(_id); packet->SetLocalAddr(_socket->GetLocalAddress()); packet->SetPeerAddr(_socket->GetPeerAddress()); _svc->Push(LLBC_SvcEvUtil::BuildDataArrivalEv(packet)); } return true; }