说明
区间适配器,一般用于字符串类的消息,类似“Hello##”,该数据,以开头,以##结尾。当然,区间适配器也能用于二进制数据,但是会有概率发生标识重复的情况。所以,用于二进制时,应当设置较复杂的区间标识。
使用
class MyCustomBetweenAndDataHandlingAdapter : CustomBetweenAndDataHandlingAdapter<MyBetweenAndRequestInfo>{public MyCustomBetweenAndDataHandlingAdapter(){this.MinSize = 5;//表示,实际数据体不会小于5,例如“**12##12##”数据,解析后会解析成“12##12”}public override byte[] StartCode => Encoding.UTF8.GetBytes("**");//可以为0长度字节,意味着没有起始标识。public override byte[] EndCode => Encoding.UTF8.GetBytes("##");//必须为有效值。protected override MyBetweenAndRequestInfo GetInstance(){throw new NotImplementedException();}}/// <summary>/// 以**12##12##,Min=5为例。/// </summary>class MyBetweenAndRequestInfo : IBetweenAndRequestInfo{public void OnParsingBody(byte[] body){//这里的Body应该为12##12}public bool OnParsingEndCode(byte[] endCode){return true;//该返回值决定,是否执行Receive}public bool OnParsingStartCode(byte[] startCode){return true;}}
