PacketParser3.0学习笔记(与2.0的差异)
请大家关注我的微博:@NormanLin_BadPixel坏像素
与2.0相比,3.0把包结构封装成了一个类,着就明文规定了包体的结构,不像之前,包体结构是我们心里规定的。
public const int MinSize = 2;
public const int OpcodeIndex = 1;
public const int RpcIdIndex = 3;
这三个常量规定了包体的最小体积,操作符的下标位置,RpcId的小标位置。我们可以看到,操作符还是占有2个字节。
public Packet(int length)
{
this.Length = 0;
this.Bytes = new byte[length];
}
注意一下这个构造函数,这个构造函数相当于建立了一个length大小的包但是里面的内容为空的实例。举个例子,就相当于我们先建造了一个可以装length体积水的水桶,这个时候水桶里没有水,所以this.Length = 0。之后,我们可以往这个水桶里装水也就是存数据。
public byte Flag()
{
return this.Bytes[0];
}
我们知道Opcode是从数据的第二位开始存的,那么第一位存的是什么数据呢?就是这家伙了,不过现在我们并不知道这家伙是干嘛的,不过应该也是用来标识数据包的。我们查看了它的引用,发现在Session3.0里面可以解释它的作用。
其他的跟2.0的没什么区别。