BitCoinClient.Program.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)
        {
            char[] chars = br.ReadChars(len);

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

Usage Example

Esempio n. 1
0
        void DisptachPacket(byte[] packet)
        {
            MemoryStream stream = new MemoryStream(packet);
            BinaryReader br     = new BinaryReader(stream);

            uint   magic    = br.ReadUInt32();
            string packetID = Program.ReadString(br, 12);
            uint   length   = br.ReadUInt32();
            uint   checksum = br.ReadUInt32();

            if (magic == cMainNetwork)
            {
                byte[] payload = br.ReadBytes((int)length);

                byte[] hash = Program.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);
                    }
                }
            }

            br.Close();
        }