BitCoinClient.NodeConnection.DisptachPacket C# (CSharp) Method

DisptachPacket() private method

private DisptachPacket ( byte packet ) : void
packet byte
return void
        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();
        }