netty学习记录1
最近在学习netty,看的是《netty权威指南 第2版》。
然后看的同时也把书上面的代码一行行敲下来做练习,不过到第三章就出问题了。
按照书上讲的,sever/client端都需要继承ChannelHandlerAdapter这个类,然后重写channelActive()、channelRead()等几个方法。
然后就是进行到这里,我以外的发现ChannelHandlerAdapter里面其实并没有那几个要被重写的方法,因此就算把程序运行起来也会发现程序没反应。
然后如果我把ChannelHandlerAdapter改成ChannelInboundHandlerAdapter之后,程序又能正常收发数据了。
我百思不得其解,以为是作者敲错了,但是百度上也没看到有人说有问题,而且这书也是第二版了,应该不会有这种问题的。


最后看一个文章的时候才发现了原因,原因就是我和作者使用的jar包版本不同。我使用的是4.1.6.Final的,而作者是5.0.0.Alpha的,所以导致的这个问题。

文章链接:Netty初步
Netty3使用了上行下行的概念
Netty3: ChannelHandler有两个子接口ChannelUpstreamHandler,ChannelDownstreamHandler, 上行和下行。
Netty4使用了入站出站的概念
Netty4: 接口变成了ChannelInboundHandler ChannelOutboundHandler,可能是为了避免原来的上下行造成误解,所以改成入站和出站了。
Netty5: 取消了进站、出站的划分,统一为继承ChannelHandlerAdapter,原来的ChannelInboundHandlerAdapter,ChannelOutboundHandlerAdapter被废弃。
但是很奇怪的是,netty官方5.0.0版本貌似还就没更新了,一直更新的都是4.1版本的

netty学习记录1的更多相关文章
- netty 学习记录一
近期在学习netty相关知识,认为<netty 权威指南>这本书还是挺好的,适合我这样的刚開始学习的人.加上netty本身自带的很多样例,学起来还是挺有兴趣的.简单记录下, 一般serve ...
- Netty学习记录
一.Netty简介 Netty 是一个基于 JAVA NIO 类库的异步通信框架,它的架构特点是:异步非阻塞.基于事件驱动.高性能.高可靠性和高可定制性. Netty 是一个 NIO client-s ...
- netty学习记录2
昨天晚上在看到7.2章MessagePack编码器和解码器开发这一章时,书里面没有贴出全部的代码,然后我按照我自己的想法把代码补全后,发现死活没有把代码跑通. 然后花了挺多时间在网上找,很多博客都贴出 ...
- Netty学习记录-入门篇
你如果,缓缓把手举起来,举到顶,再突然张开五指,那恭喜你,你刚刚给自己放了个烟花. 模块介绍 netty-bio: 阻塞型网络通信demo. netty-nio: 引入channel(通道).buff ...
- Netty 学习 一、初识Netty【原创】
在过去几年的工作和学习中,比较关注高层次的应用开发,对底层探究较少.实现Web应用的开发,主要依赖Tomcat.Apache等应用服务器,程序员无需了解底层协议,但同样限制了应用的性能和效率.现在开始 ...
- java后端学习记录2019
学习计划 2019年计划 1.学习计算机基础,并加以实践.包括LeetCode刷题.数据库原理(索引和锁.Sql优化等).网络协议(Http.Tcp).操作系统(加深Linux).<Http权威 ...
- Netty学习——protoc的新手使用流程
Netty学习——protoc的新手使用流程 关于学习的内容笔记,记下来的东西等于又过了一次脑子,记录的更深刻一些. 1. 使用IDEA创建.proto文件,软件会提示你安装相应的语法插件 安装成功之 ...
- Netty学习(二)使用及执行流程
Netty简单使用 1.本文先介绍一下 server 的 demo 2.(重点是这个)根据代码跟踪一下 Netty 的一些执行流程 和 事件传递的 pipeline. 首先到官网看一下Netty Se ...
- netty学习资料
netty学习资料推荐官方文档和<netty权威指南>和<netty in action>这两本书.下面收集下网上分享的资料 netty官方参考文档 Netty 4.x Use ...
随机推荐
- URL地址中中文乱码详解(javascript中encodeURI和decodeURI方法、java.net.URLDecoder.encode、java.net.URLDecoder.decode)
引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生了,该如何解决呢?且听本文详细道来. ...
- redis笔记(四)
本篇内容主要是简单介绍redis在python中的使用from time import sleep在python代码中使用redis需要导入redis packageimport redis简单的连接 ...
- Verilog分频器的设计
大三都要结束了,才发现自己太多东西没深入学习. 对于偶分频:(计数到分频数的一半就翻转) 注: 图中只用了一个计数器,当然也可以用多个: 图中只计数到需要分频的一半,当然也可计数到更多: 图中从第一个 ...
- java 内存举例
1. java内存的主要划分 2. OOTest02.java 的内存划分 public class OOTest02{ public static void main(String[] args) ...
- java集合框架——工具类
一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...
- RPC电源监控总结
首先说一下监控机箱的监控原理. 设备的信息传输是通过tcp或者udp传输十六进制的数然后进行解析,传输数据. 如图: 设备反馈信息也是返回来的十六机制,然后按照对应的位置进将数据解析成二进制,用二进制 ...
- 砍树,POJ(2665)
题目链接:http://poj.org/problem?id=2665 解题报告: 这里的区域没有重复,若有重复的话,模拟即可. #include <cstdio> #include &l ...
- IIS/IIS Express中遇到的证书问题
上面这幅图大家应该不陌生(觉得陌生的话就不用看下面的内容了,呵呵),再放上中英两段关键字: 根据验证过程,远程证书无效. The remote certificate is invalid accor ...
- 从Java官网下载JDK1.6等低版本JDK
今天在浏览Java官网的时候发现旧版本(1.8之前)的JDK安装包下载地址没有在下载页面明显的提供出来.个人通过在官网查看,发现oracle官方将旧版本的JDK全都放在Java Archive模块中了 ...
- C语言中volatile关键字的作用[转]
一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...