📄 transportblock.cs
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -