BattleNet.Bncs.GetPacket C# (CSharp) Метод

GetPacket() защищенный Метод

protected GetPacket ( List &bncsBuffer, List &data ) : bool
bncsBuffer List
data List
Результат bool
        protected override bool GetPacket(ref List<byte> bncsBuffer, ref List<byte> data)
        {
            while (bncsBuffer.Count < 4)
                {
                    try
                    {
                        byte temp = 0;

                        temp = (byte)m_stream.ReadByte();
                        bncsBuffer.Add(temp);

                        if (ClientlessBot.debugging)
                        {
                            Console.Write("{0:X2} ", (byte)temp);
                        }
                    }
                    catch
                    {
                        Console.WriteLine("\n{0}: [BNCS] Disconnected From BNCS", m_owner.Account);
                        Kill();
                        return false;
                    }
                }
                if (ClientlessBot.debugging)
                    Console.WriteLine("");
                byte[] bytes = new byte[bncsBuffer.Count];
                bncsBuffer.CopyTo(bytes);

                short packetLength = BitConverter.ToInt16(bytes, 2);

                while (packetLength > bncsBuffer.Count)
                {
                    try
                    {
                        byte temp = (byte)m_stream.ReadByte();
                        bncsBuffer.Add(temp);
                        if (ClientlessBot.debugging)
                        {
                            Console.Write("{0:X2} ", (byte)temp);
                        }
                    }
                    catch
                    {
                        Console.WriteLine("\n{0}: [BNCS] Disconnected From BNCS", m_owner.Account);
                        Kill();
                        return false;
                    }
                }
                if (ClientlessBot.debugging)
                    Console.WriteLine("");
                data = new List<byte>(bncsBuffer.GetRange(0, packetLength));
                bncsBuffer.RemoveRange(0, packetLength);
                return true;
        }