private void HandleData(byte[] _data)
        {
            using (Packet _packet = new Packet(_data))
            {
                int _packetLength = _packet.ReadInt();
                _data = _packet.ReadBytes(_packetLength);
            }

            ThreadMananager.ExecuteOnMainThread(() =>
            {
                using (Packet _packet = new Packet(_data))
                {
                    int _packetid = _packet.ReadInt();
                    packetHandlers[_packetid](_packet);
                }
            });
        }
        private bool HandleData(byte[] data)
        {
            int _packetLenght = 0;

            packet.SetBytes(data);

            if (packet.UnreadLength() >= 4)
            {
                _packetLenght = packet.ReadInt();
                if (_packetLenght <= 0)
                {
                    return(true);
                }
            }

            while (_packetLenght > 0 && _packetLenght <= packet.UnreadLength())
            {
                byte[] _packetBytes = packet.ReadBytes(_packetLenght);
                ThreadMananager.ExecuteOnMainThread(() =>
                {
                    using (Packet packet = new Packet(_packetBytes))
                    {
                        int _packetID = packet.ReadInt();
                        packetHandlers[_packetID](packet);
                    }
                });

                _packetLenght = 0;
                if (packet.UnreadLength() >= 4)
                {
                    _packetLenght = packet.ReadInt();
                    if (_packetLenght <= 0)
                    {
                        return(true);
                    }
                }
            }

            if (_packetLenght <= 1)
            {
                return(true);
            }

            return(false);
        }