博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Netty中的ChannelHandler
阅读量:5098 次
发布时间:2019-06-13

本文共 809 字,大约阅读时间需要 2 分钟。

FixedLengthFrameDecoder

数据包长度固定,解决拆包粘包

例如:一个modbus协议, 指令为如下,有 12个 字节

00 00   00 00   00 06     FF      03    00 01     00 00  | 事务 |协议标识| 长度 | 单元标识 |功能码|起始地址|寄存器地址|

使用:

channel.pipeline().addLast(new FixedLengthFrameDecoder(frameLength));

ReadTimeoutHandler

读取数据超时处理, tcp长连接中常用

使用:

int timeoutSeconds = 10;channel.pipeline().addLast("readtime",new ReadTimeoutHandler(timeoutSeconds));

JsonObjectDecoder

JSON格式的数据包,解决拆包粘包问题

使用:

  1. 不带构造方法的,数据包大小为 1048576 字节 = 1M。
channel.pipeline().addLast(new JsonObjectDecoder());
  1. 如果JSON文件较大,比如包含多张Base64的图片,那么用无参构造就会出现收不到数据的情况,此时需要用有参构造
// JSON文件最大为10Mchannel.pipeline().addLast(new JsonObjectDecoder(1048576 * 10));

pom.xml

io.netty
netty-all
4.1.30.Final

转载于:https://www.cnblogs.com/qijianguo/p/10686364.html

你可能感兴趣的文章
jquery实现限制textarea输入字数
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
ActiveMQ与spring整合
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
关于TFS2010使用常见问题
查看>>
URL编码与解码
查看>>
Eclipse 安装SVN插件
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>