Exemplo n.º 1
0
    /// <summary>
    /// 处理一个完整包
    /// </summary>
    void ManageCompleteRec(byte[] ByteBuff)
    {
        byte[] FlagByte = new byte[4];
        byte[] DataByte = new byte[ByteBuff.Length - 6];

        Array.Copy(ByteBuff, 2, FlagByte, 0, FlagByte.Length);
        Array.Copy(ByteBuff, 6, DataByte, 0, DataByte.Length);

        int iFlag = BitConverter.ToInt32(FlagByte, 0);

        iFlag = Endian.Switch(iFlag);

        MemoryStream ms = new MemoryStream();

        ms.Write(DataByte, 0, DataByte.Length);
        ms.Seek(0, SeekOrigin.Begin);
        if (mSocketClient == null)
        {
            Debug.Log("Socket is Null " + ((MsgType)iFlag).ToString());
            return;
        }
        RecPacketCls rec = new RecPacketCls(mSocketClient, ms, iFlag, ++count);

        lock (Game_Recv_Client.RecPacketList)
        {
            RecPacketList.Add(rec);

            Game_Recv_Client.RecPacketList.Add(rec);
            Sort();
            //Debug.Log(mSocketClient.ClaName + " Receive " + ((MsgType)iFlag).ToString() + "------ByteListCount is------" + ByteList.Count.ToString());
            //Debug.Log("ByteList Leave byte is   :    " + ByteList.Count);
            ManageRecMsgBefore();
        }
    }
Exemplo n.º 2
0
 public void RemovePacket(RecPacketCls _rpc)
 {
     if (RecPacketList.Contains(_rpc))
     {
         RecPacketList.Remove(_rpc);
     }
 }