private void OnPacketOK(NetCore.RecvData rcv) { lock (Packages) { Packages.Enqueue(rcv); } }
public void Update() { try { NetCore.RecvData vBytes = null; PacketNumber = mRecvQueue.Count; int WeakPkgNum = 0; int nProcNumber = 0; bool DiscardWeak = false; if (PacketNumber > RecvPacketNumLimitter) { DiscardWeak = true; } lock (mRecvQueue) { for (int i = 0; i < PacketNumber; i++) { if (mRecvQueue.Count == 0) { break; } vBytes = mRecvQueue.Dequeue(); if (vBytes == null) { continue; } if (DiscardWeak) { unsafe { fixed(byte *pPkg = &vBytes.PkgData[0]) { if (((NetCore.PkgHeader *)pPkg)->IsWeakPkg()) { WeakPkgNum++; continue; } } } } nProcNumber++; if (mHost.OnReceiveData != null) { mHost.OnReceiveData(mHost, vBytes.PkgData, vBytes.Length, vBytes.RecvTime); } vBytes.Dispose(); } } KickedWeakPkgNum = WeakPkgNum; ProcPackNumber = nProcNumber; } catch (System.Exception ex) { Profiler.Log.WriteException(ex); } }
private void OnPacketOK(NetCore.RecvData rcvData) { //if (DiscardAllPacket) // return; lock (mRecvQueue) { mRecvQueue.Enqueue(rcvData); } }