Netty——高级发送和接收数据handler处理器

 我来答
枝其3052
2022-07-03 · TA获得超过3071个赞
知道小有建树答主
回答量:3612
采纳率:100%
帮助的人:190万
展开全部

netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler ChannelInboundHandlerAdapter

一般用netty来发送和接收数据都会继承SimpleChannelInboundHandler和 ChannelInboundHandlerAdapter 这两个抽象类,那么这两个到底有什么区别呢?

其实用这两个抽象类是有讲究的,在客户端的业务Handler继承的是 SimpleChannelInboundHandler ,而在服务器端继承的是 ChannelInboundHandlerAdapter

最主要的区别就是SimpleChannelInboundHandler在接收到数据后会自动release掉数据占用的Bytebuffer资源(自动调用Bytebuffer.release())。而为何服务器端不能用呢,因为我们想让服务器把客户端请求的数据发送回去,而服务器端有可能在channelRead 方法 返回前还没有写完数据,因此不能让它自动release。

handler处理器 内置 方法

通道激活时触发,当客户端connect成功后,服务端就会接收到这个事件,从而可以把客户端的Channel记录下来,供后面复用

这个必须用啊,当收到对方发来的数据后,就会触发,参数msg就是发来的信息,可以是基础类型,也可以是序列化的复杂对象。

channelRead执行后触发

出错是会触发,做一些错误处理

继承 ChannelInboundHandlerAdapter 具体的例子

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
万山数据
2024-11-14 广告
实时数仓处理是我们北京万山数据科技有限公司数据处理能力的核心之一。它基于先进的流处理技术,能够实时捕获、处理和分析海量数据,确保数据的时效性和准确性。通过构建高效的实时数据管道,我们能够实现数据的即时入库与查询,为业务决策提供强有力的支持。... 点击进入详情页
本回答由万山数据提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式