问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

LengthFieldBasedFrameDecoder 基于长度字段的帧解码器

发布网友 发布时间:2023-02-26 21:02

我来回答

1个回答

热心网友 时间:2023-10-18 18:39

在自定义协议中,我们把每一个协议个体称为一帧数据,对不同的请求或者响应每一帧的数据长度都基本不一样,同一个请求在不同时刻发出可能获得的响应长度也是不一样的,那么我们要如何获取完整的一帧数据呢?

LengthFieldBasedFrameDecoder 就是基于长度字段的帧解码器,理解该解码器知道两个东西就够了,长度字段在哪里?长度字段的值从哪里开始?

先来假设一帧数据,一开始我们是不知道这一帧数据有多长的,就像下面这样子,第一步我们就要找长度字段在哪里,说明是自定义协议,那么我们就规定前一个字节数据代表帧的长度,当然如果你喜欢你可以规定第3 个字节或者第3-4 个字段代表帧的长度。看下面的帧数据的第一个字节数据为 0x9C ,就是156,那么这156 怎么理解呢?

在自定义协议的时候一般格式为:协议头 + 消息体,不同的编码习惯可能在产生不同的封装实体,例如,1. 协议头封装为一个对象,消息体封装为一个对象;2. 还可以消息体对象包含了协议头。根据不同的封装方式就可能产生156 的开始位置不同,假设前四个字段是协议头,可以得出:

明白了上面两个问题之后再来看这个解密器就简单多了。

这个概念涉及到底层的知识,我们不关心,有一个构造方式没有该参数的,用那个就好。

超过该值得帧都不解密

这个是我们找长度字段的开始位置,看下面例子:

可以看到通过lengthFieldOffset 和 lengthFieldLength 我们知道了长度字段在哪里了。

到了这里我们确定长度字段的值了。

从字段的表面意思看:初始化的时候需要跳过多少个字节数,也是就是从哪里开始算的意思啦。

不抛出:不需要重连,但是发送发需要发送整帧数据,发送方当作接受方已经接受了数据。
抛出:需要重连。

了解了构造方法之后我们来算一下一帧数据的长度
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
财务中什么叫加计扣除 税务上什么叫加计扣除 什么叫加记扣除 如何制定差旅费标准? 夫江宁众彩家禽批发市场怎么坐公交 南京花鸟市场究竟是一处如何经营的市场 关于mp4\psp看电子书txt的问题 驾驶证吊销后如何重新考证? 嘴唇下方属于危险三角区吗?不小心碰到了长在上面的疖子,用餐巾纸... 你好,我上个星期长了个疖子,在两个锁骨中间,牙膏真管用啊? 通过实际的案例详解 Netty 中 LengthFieldBasedFrameDecoder 的使用 宝马5系后备箱有急救包吗 凯迪拉克xt5怎么样值得买吗 凯迪拉克xt5蜂鸟carlife怎么用 xt5抗创吗 我约泄露了,别人登录了,今天实然微信里的东西全没了,怎样才能退... 请示工作领导说下周怎么说 手机号码尾号旺财 意头好能量强的手机尾号? 聚财发财的手机号码 数字旺运旺财? 手机号尾数是几最旺财 带来好运气号码推荐? 手机后四位吉祥数推荐 旺财手机尾数 什么数字最旺财 招财的手机尾号号码? 手机号码尾号多少旺财最适合自己 旺财号码盘点? 手机尾号是多少比较旺 钱财满满的手机号码? 女朋友18岁生日送什么礼物好一点? 甘肃广播电视大学金昌分校的介绍 春节四川自驾游线路推荐 春节浙江自驾游最佳路线 带鸟、日、月、秋、春、冬、水、关、山、风、花、江、人、白、酒的古... 手电筒打不开怎么回事? 荷兰住飞机到捷克几个小时 葡萄牙和德国距离多少 捷克和德国有多远 花茶的养生功效以及食用方法 推荐常见的花茶能帮助养生 6千米300分米=( )千米 0.03米等于多少千米 怎么换算千米和分米? 异地办医保卡需要什么证件 手机怎么看慕课成绩 苹果快充头原装 中国复苏是什么意思 十月萝卜脆生生是什么 知识普及:国考与省考的区别有哪些 梦见被狗缠 梦见狗不断缠着我是什么意思 ctm熔火前线军需官要怎么开启 一天只能获得十多个世界之树的印记,但是看攻略说一天有29个。我做了起... 佳能mf232w打印机通病 石碱水可以擦冰箱吗