一款简单易用的基础网络通讯组件库。

CustomCountSpliterDataHandlingAdapterTCountSpliterRequestInfoFilterTByteBlock(TByteBlock, Boolean, TCountSpliterRequestInfo) 方法

筛选解析数据,通过计数分隔符来确定数据边界。

Definition

命名空间: TouchSocket.Core
程序集: TouchSocket.Core (在 TouchSocket.Core.dll 中) 版本:4.0.0-beta.143+5fcca7a4e70968794985dc3793adc50531308be6
C#
protected override FilterResult Filter<TByteBlock>(
	ref TByteBlock byteBlock,
	bool beCached,
	ref TCountSpliterRequestInfo request
)
where TByteBlock : IBytesReader

参数

byteBlock  TByteBlock
要解析的字节块。
beCached  Boolean
指示当前请求对象是否为缓存的上次实例。
request  TCountSpliterRequestInfo
输出的请求信息对象。

类型参数

TByteBlock
字节块类型,必须实现IBytesReader接口。

返回值

FilterResult
Cache:当分隔符计数未达到阈值时,需要缓存更多数据。 Success:成功解析出完整的数据段并创建了请求信息实例。

备注

此方法实现了核心的数据分割逻辑:

  1. 在字节块中搜索分隔符出现的位置
  2. 计数分隔符的出现次数
  3. 当计数达到Count时,提取相应的数据段
  4. 调用GetInstance(ReadOnlySpanByte)创建请求信息实例

如果分隔符计数不足,方法返回Cache以等待更多数据。

参见