protected void ReceiveNetPackage(NetUdpFixedSizePackage mPackage) { bool bSucccess = NetPackageEncryption.DeEncryption(mPackage); if (bSucccess) { if (mPackage.nPackageId > 50) { mUdpCheckPool.ReceiveCheckPackage(mPackage); } else { NetPackageExecute(mPackage); } } }
public void SendCheckPackage(UInt16 id, byte[] buffer) { DebugSystem.Assert(id > 50, "Udp 系统内置命令 此逻辑不处理"); int readBytes = 0; int nBeginIndex = 0; UInt16 groupCount = 0; if (buffer.Length % ClientConfig.nUdpPackageFixedBodySize == 0) { groupCount = (UInt16)(buffer.Length / ClientConfig.nUdpPackageFixedBodySize); } else { groupCount = (UInt16)(buffer.Length / ClientConfig.nUdpPackageFixedBodySize + 1); } //DebugSystem.Log ("Client bufferLength: " + buffer.Length); while (nBeginIndex < buffer.Length) { if (nBeginIndex + ClientConfig.nUdpPackageFixedBodySize > buffer.Length) { readBytes = buffer.Length - nBeginIndex; } else { readBytes = ClientConfig.nUdpPackageFixedBodySize; } var mPackage = ObjectPoolManager.Instance.mUdpFixedSizePackagePool.Pop(); mPackage.nOrderId = this.nCurrentWaitSendOrderId; mPackage.nGroupCount = groupCount; mPackage.nPackageId = id; mPackage.Length = readBytes + ClientConfig.nUdpPackageFixedHeadSize; Array.Copy(buffer, nBeginIndex, mPackage.buffer, ClientConfig.nUdpPackageFixedHeadSize, readBytes); NetPackageEncryption.Encryption(mPackage); AddSendCheck(mPackage); AddSendPackageOrderId(); groupCount = 1; nBeginIndex += readBytes; } }
public NetUdpFixedSizePackage GetUdpSystemPackage(UInt16 id, object data) { DebugSystem.Assert(id <= 50, "不是 Udp 系统内置命令"); IMessage data1 = data as IMessage; byte[] stream = Protocol3Utility.SerializePackage(data1); var mPackage = ObjectPoolManager.Instance.mUdpFixedSizePackagePool.Pop(); mPackage.nOrderId = 0; mPackage.nGroupCount = 0; mPackage.nPackageId = id; mPackage.Length = stream.Length + ClientConfig.nUdpPackageFixedHeadSize; Array.Copy(stream, 0, mPackage.buffer, ClientConfig.nUdpPackageFixedHeadSize, stream.Length); NetPackageEncryption.Encryption(mPackage); return(mPackage); }