netty 权威指南勘误[通俗易懂]

netty 权威指南勘误[通俗易懂]近日就netty库的使用,试读了netty权威指南一书,就书中的编码问题进行以下校正1、我使用的是4.1.2版本的netty库2、IDE为netbeans8.1E1. handler适配器应使用ChannelInboundHandlerAdapter。 E2. 在私有协议开发一章:     编码器中函数encode中设置帧长度应为以下代码


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

近日就netty库的使用,试读了 netty权威指南一书,就书中的编码问题进行以下校正

环境:

1、我使用的是4.1.2版本的netty库

2、IDE 为netbeans 8.1

问题:

E1.  handler 适配器应继承使用 ChannelInboundHandlerAdapter 。 

E2.  在私有协议开发一章: 

       编码器中函数encode 中设置帧长度应为以下代码

            sendBuf.writeInt(0);
            sendBuf.setInt(4, sendBuf.readableBytes()-8); 

       书中没有减去8,会导致数组越界。 因为netty认为 frame的长度为所载内容的长度,而不是报文的长度。 报文的长度为 length+lengthOffset+lengthFieldLength。

       解码器中decode函数应该把in 替换成frame。 因为frame为解析后的报文, in为原始数据流,报文已经从原始流中读取出;如果继续读取则是错误的。应该从frame中读取数据信息。例如

<pre name="code" class="java">header.setCrcCode(in.readInt());

应该替换成header.setCrcCode(frame.readInt());


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188520.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • matlab函数rand,randn,randi用法整理

    matlab函数rand,randn,randi用法整理Matlab学习笔记——函数使用

    2022年7月17日
  • JSP的原生Ajax与解析Json

    JSP的原生Ajax与解析JsonJSP的原生Ajax与解析Json

    2022年4月22日
  • 大数据概况及Hadoop生态系统总结

    大数据概况及Hadoop生态系统总结觉得有帮助的,请多多支持博主,点赞关注哦~文章目录大数据概况及Hadoop生态系统1、大数据概念理解1.1、什么是大数据?1.2、大数据特征(4V)?1.3、大数据应用场景?1.4、大数据部门业务流程分析?1.5、大数据部门组织结构?1.6、数据仓库与数据库的区别?2、职业简介2.1、大数据工程师2.1.1、简介2.1.2、职责2.1.3、所需技能2.1.4、工作方向2.2、大数据分析师2.2….

    2022年5月19日
  • 函数的极限定义

    函数的极限定义函数的极限情况情况1:自变量x任意地接近于有限值x0,记作x->x0时,函数f(x)的变化情况;情况2:自变量x的绝对值|x|无限取向正无穷的时,函数f(x)的变化情况;然后明白下去心邻域:以x0这一点为中心的任何开区间——称为点x0的邻域。用符号表达为:U(x0)如果去掉x0这个点,那么就是去心邻域,用符号表达为:U’(x0)定义:|f(x)-A|<smallvalue,x无限趋向于x0这里的:smallvalue可以任意小,要多小有多小。A是一个常数。那么此时必

    2022年4月30日
  • 整理了十五道为数不多的tomcat面试题,错过就没了!

    整理了十五道为数不多的tomcat面试题,错过就没了!当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

    2022年6月6日
  • 使用XSLT转换XML

    使用XSLT转换XMLSLT1.0是W3C标准,主要用于对XML文档的转换,包括将XML转换成HMTL,TEXT或者另外格式的XML文件.XSLT1.0可以与XPATH1.0标准一起使用,XPATH会告诉你要转换的节点而

    2022年7月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号