与网络打交道 在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()//获取缓冲包的数量
时间: 2024-10-06 06:23:29