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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
上一篇 2026年4月16日 下午12:55
下一篇 2026年4月16日 下午1:01


相关推荐

  • tomcat优化配置

    tomcat优化配置tomcat 相关知识

    2026年3月18日
    2
  • 万能网站_我还收集了

    万能网站_我还收集了1、http://www.zitanglj.com/index.htm2、http://www.nkhqlncdj.com/

    2022年10月18日
    6
  • js中splice是什么意思_vue中splice方法

    js中splice是什么意思_vue中splice方法在js中,arr.splice(str)方法是处理数组的利器,利用它可以实现在指定位置删除、替换、插入指定数量的元素。其语法为: 1arr.splice(index[,deleteCo

    2022年8月2日
    10
  • pycharm调试模式

    pycharm调试模式判断代码是否正确时启动调试模式 运行键旁边 首先设置断点 gt 启动调试模式 gt 按 stepover 键一步步进行运行代码 直到条件的布尔值为 True 时 Console 控制台 显示运行的正确结果 如图

    2026年3月18日
    2
  • python中变量的命名以及使用[通俗易懂]

    python中变量的命名以及使用[通俗易懂]一、变量的概念变量名只有在第一次出现的时候,才是定义变量。当再次出现时,不是定义变量,而是直接使用之前定义的变量。1.变量命名1)命名的规范性变量名可以包括字母、数字、下划线,但是数字不能做为开头。例如:name1是合法变量名,而1name就不可以。 系统关键字不能做变量名使用 除了下划线之个,其它符号不能做为变量名使用 Python的变量名是除分大小写的2)驼峰命名法…

    2022年6月18日
    35
  • 判断字符串是否正序倒序一致(判断回文字符串代码)

    判断字符串是否正序倒序一致(判断回文字符串代码)感觉部分朋友应该是在面试的过程中翻到了笔者的文章,笔者就不废话直接上代码了:判断是不是这种字符串:‘压力大力压’functionpalindrome(str){ letreg=/[\w\_]/g; letstr0=str.toLowerCase().replace(reg,””); letstr1=str0.split(“”).reverse().join(“”…

    2022年6月1日
    41

发表回复

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

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