public LengthFieldBasedFrameDecoder(ByteOrder byteOrder,
int maxFrameLength, int lengthFieldOffset, int lengthFieldLength, int lengthAdjustment,
int initialBytesToStrip, boolean failFast) {
... ...
}
  • byteOrder: Length 字段是大端还是小端,默认是 ByteOrder.BIG_ENDIAN
  • maxFrameLength: 完整数据包的最大长度
  • lengthFieldOffset: Length 字段起始索引
  • lengthFieldLength: Length 字段长度
  • lengthAdjustment: 默认情况下 Length 的长度表示的是 Length 字段之后的长度,如果 Length 长度包含的是真个数据包的长度或没有包含结束符等,则需要调整该值
  • initialBytesToStrip: 识别出整个数据包后,跳过的长度 (通常用来跳过数据包包头,只解析正文)
  • failFast: 一般设置为 true,读到 Length 后,如果 Length 超过 maxFrameLength,则立即抛出异常

举例

+--------------+--------------+------------+------------+----------+---------------+----------+
| ResponseCode | FunctionCode | ParamType | StatusCode | Length | Data | EOF |
| (2 Byte) | (2 Byte) | (1 Byte) | (1 Byte) | (2 Byte) | (Length Byte) | (2 Byte) |
+--------------+--------------+------------+------------+----------+---------------+----------+
  • lengthFieldOffset = 6 (2 + 2 + 1 + 1)
  • lengthFieldLength = 2 (Length 字段本身长度)
  • lengthAdjustment = 2 (EOF 长度:本例中 Length 字段表示的长度仅表示了 Data 部分,没有包含 EOF)

参考:【看完就会】Netty的LengthFieldBasedFrameDecoder的用法详解

Netty 中 LengthFieldBasedFrameDecoder 构造函数取值备忘的更多相关文章

  1. C#中float的取值范围和精度

    原文:C#中float的取值范围和精度 float类型的表现形式: 默认情况下,赋值运算符右侧的实数被视为 double. 因此,应使用后缀 f 或 F 初始化浮点型变量,如以下示例中所示: floa ...

  2. C语言中数据类型的取值范围

    C语言中数据类型的取值范围如下:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 ...

  3. mybatis中两种取值方式?谈谈Spring框架理解?

    1.mybatis中两种取值方式? 回答:Mybatis中取值方式有几种?各自区别是什么? Mybatis取值方式就是说在Mapper文件中获取service传过来的值的方法,总共有两种方式,通过 $ ...

  4. loadrunner 脚本优化-参数化之场景中的参数化取值

    脚本优化-场景中的参数化取值 by:授客 QQ:1033553122   Action() { lr_eval_string("{NewParam}"); lr_eval_stri ...

  5. netty中LengthFieldBasedFrameDecoder的使用

    在org.jboss.netty.handler.codec.frame包中,有LengthFieldBasedFrameDecoder类用来解析带有长度属性的包,只要我们在传输协议中加入包的总长度就 ...

  6. mysql中数据类型的取值范围

    mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下: 1.bigint 从 -2^63 (-9223372036854775808) 到 2^ ...

  7. Struts2中EL表达式取值

    http://blog.csdn.net/cuihaiyang/article/details/41950141 (写的不错,可以知道为什么struts2可以用El取属性值的问题.正常el从reque ...

  8. 关于模板中的动态取值 ---反射与javascript脚本编译

    在项目中经常遇到一个问题,打印word或者打印excel的时候,我们经常使用一对一的赋值或者批量替换的方式来对模板进行修改. 但是现在遇到两种场景: 1.取值是通过自定以方法进行取值的. 如:一个销售 ...

  9. JSP中EL表达式取值问题记录(已解决)

    ***************************2015-10-28 22:21************************* 问题描述如下: 在当前的jsp页面已经有了如下代码: < ...

随机推荐

  1. vue项目使用MD5进行密码加盐

    首先给项目安装MD5模块:npm install --save js-md5 使用方法有两种: 使用方法1:  在需要使用的项目文件中引入MD5:import md5 from 'js-md5'; 使 ...

  2. JCE安装使用报错

    "description":"No key was installed for encryption service","status":& ...

  3. IT技术团队管理之成长

    ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, 企业管理,系统架构设计与评估, ...

  4. jsp内置对象-application对象

    隐含对象application是javax.servlet.ServletContext接口实现类的对象,其拥有application的作用范围,即application可以用于在多个用户之间保存数据 ...

  5. webstorm 2018.2.3 cmd+w无法关闭文件

  6. 《JavaScript高级程序设计》笔记:函数表达式(七)

    递归 function factorial(num){ if(num<=1){ return 1; }else { return num * arguments.callee(num-1); } ...

  7. Skyline基本操作模式封装

    skyline基本操作模式 项目中基于skyline的浏览器插件进行二次开发,基本的业务操作模式如下: 工具栏:点击工具栏某个功能,开启操作模式. onFrame:鼠标移动预选对象,在能够拾取或者选定 ...

  8. K3实现按虚拟件/组件发料

           最近公司调度部反应了一个K3使用过程中遇到的巨大问题:公司成品BOM组成物料种类破千,绝大部分还不能拆分成组件.为了方便区分,从逻辑上把一堆堆的半成品分成了一个个虚拟件.K3生成的投料单 ...

  9. git错误--ssh: Could not resolve hostname ssh.github.com: Name or service not known--解决方式

    错误如下: git push origin ssh: Could not resolve hostname ssh.github.com: Name or service not known fata ...

  10. Neo4j 全文检索

    全文检索基本概念 搜索 搜索这个行为是用户与搜索引擎的一次交互过程,用户需要找一些数据,他提供给搜索引擎一些约束条件.搜索引擎通过约束条件抽取一些结果给用户 搜索引擎 搜索引擎存在的目的是存储,查找和 ...