コード例 #1
0
ファイル: Session.cpp プロジェクト: mr-kelly/llbc
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;
}