GS与网络打交道

与网络打交道
在GS,GC,Share都与网络打交道,但还是GC最多
GC打交道过程
send_stat BaseChannel::SendCmdTry()
{
    if (!m_queCmd.size())
        return send_stat::send_succeed;

    for(;;)
    {
        if (m_queCmd.empty())
            break;
        DataPkt pkt = m_queCmd.front();

        {
            send_stat hr = m_pDataLayer->SendData(m_nChannelId, pkt.pData, pkt.nSize);//GC与网络打交道倒也没什么
            if(hr != send_stat::send_succeed)
            {
                //放入等待队列,让GS来发送
                m_pShare->PushGcWait(m_nChannelId);
                return hr;
            }
        }

        m_queCmd.pop();

        m_pShare->PushPkt(pkt.pData, pkt.nSize);
    }
    return send_stat::send_succeed;
}
share:
void Share::OnTurnToClient(int nChannelId, void* pData, int nLen)
{
    m_pDataLayer->SendData(nChannelId, pData, nLen);//share这层还不知道什么意思
}
gs:
GS这边与网络打交道其实不多,就是固定的几处
m_spDataLayer->Close(nChannelId);//踢玩家下线
GetBufferNum()//获取缓冲包的数量
原文地址:https://www.cnblogs.com/zzyoucan/p/4149411.html