BCNet.Utils.ReadString C# (CSharp) Method

ReadString() public static method

public static ReadString ( BinaryReader br, int len ) : string
br System.IO.BinaryReader
len int
return string
        public static string ReadString(BinaryReader br, int len)
        {
            byte[] bytes = br.ReadBytes(len);

            string str = "";
            for (int i = 0; i < len; i++)
            {
                if (bytes[i] != 0)
                    str += (char)bytes[i];
            }
            return str;
        }

Usage Example

Beispiel #1
0
        int DisptachPacket(byte[] packet, long size)
        {
            MemoryStream stream = new MemoryStream(packet);
            BinaryReader br     = new BinaryReader(stream);

            int bytesConsumed = 0;

            while (stream.Position + 24 < size)
            {
                uint   networkID = br.ReadUInt32();
                string packetID  = Utils.ReadString(br, 12);
                uint   length    = br.ReadUInt32();
                uint   checksum  = br.ReadUInt32();
                if (stream.Position + length > size)
                {
                    break;
                }

                //Console.WriteLine(packetID);

                if (networkID == mNetworkID)
                {
                    byte[] payload = br.ReadBytes((int)length);

                    byte[] hash = Utils.GenerateHash(payload);
                    if (CompareChecksum(checksum, hash))
                    {
                        // valid packet, get the handler
                        if (mPacketProcessors.ContainsKey(packetID))
                        {
                            PacketProcessor p = mPacketProcessors[packetID];
                            p(payload);
                        }
                        else
                        {
                            Console.WriteLine("Unhandled packet: " + packetID);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Failed checksum!");
                    }
                }
                else
                {
                    Console.WriteLine("Failed ID Check, Network ID: " + networkID);
                }

                bytesConsumed += 24 + (int)length;
            }

            br.Close();
            return(bytesConsumed);
        }
All Usage Examples Of BCNet.Utils::ReadString