transportblock.cs

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

CS
47
字号
namespace Imps.Client.Core.P2P.FileTransportor
{
    using NCindy;
    using System;

    public abstract class TransportBlock
    {
        protected FileChunk chunk;
        public const byte CtrlTypeMask = 1;
        protected byte[] data;
        public const byte DataTypeMask = 0;
        public const int Header_Size = 4;
        protected const byte TransportingID_Index = 1;
        protected const byte TypeByteIndex = 0;
        protected uint typeMask;

        public TransportBlock()
        {
        }

        public TransportBlock(FileChunk chunk)
        {
            this.chunk = chunk;
        }

        public static TransportBlock CreateBlock(IPacket packet)
        {
            switch (packet.Content.GetInnerByteArray()[0])
            {
                case 0:
                    return new DataBlock(packet, BitConverter.ToInt32(packet.Content.GetInnerByteArray(), 4));

                case 1:
                    return new ControlBlock(packet);
            }
            return null;
        }

        protected abstract IPacket FillBlock();
        public IPacket GetPacket()
        {
            return this.FillBlock();
        }
    }
}

⌨️ 快捷键说明

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