controlblock.cs

来自「破解的飞信源代码」· CS 代码 · 共 64 行

CS
64
字号
namespace Imps.Client.Core.P2P.FileTransportor
{
    using NCindy;
    using NCindy.Packet;
    using System;
    using System.Text;

    internal class ControlBlock : TransportBlock
    {
        private readonly short blockID;
        private string blockMd5;
        private byte transportingID;

        public ControlBlock(FileChunk block)
        {
            base.chunk = block;
            this.blockID = block.BlockID;
        }

        public ControlBlock(IPacket packet)
        {
            byte[] innerByteArray = packet.Content.GetInnerByteArray();
            this.transportingID = innerByteArray[1];
        }

        protected override IPacket FillBlock()
        {
            this.blockMd5 = base.chunk.BlockMD5;
            this.transportingID = base.chunk.FileInfo.TransportingID;
            byte[] bytes = Encoding.UTF8.GetBytes(this.blockMd5);
            byte[] dst = new byte[4 + bytes.Length];
            dst[0] = 1;
            dst[1] = this.transportingID;
            Buffer.BlockCopy(BitConverter.GetBytes(base.chunk.BlockID), 0, dst, 2, 2);
            return new DefaultPacket(dst);
        }

        public short BlockID
        {
            get
            {
                return this.blockID;
            }
        }

        public string BlockMD5
        {
            get
            {
                return this.blockMd5;
            }
        }

        public byte TransportingID
        {
            get
            {
                return this.transportingID;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?