Netty
Lemon_MY
这个作者很懒,什么都没留下…
展开
-
Netty中的handler()和childHandler()、childOption()和option有什么区别
handler()和childHandler()的主要区别是,handler()是发生在初始化的时候,childHandler()是发生在客户端连接之后。也就是说,如果需要在客户端连接前的请求进行handler处理,则需要配置handler(),如果是处理客户端连接之后的handler,则需要配置在childHandler()。childHandler()配置的handler是客户端连接之后才会处理的。其实,option和childOption也是一样的道理。childHandler()和childO转载 2020-07-09 09:26:27 · 1631 阅读 · 0 评论 -
Netty中的LoggingHandler
当在客户端和服务端的ChannelInitializer继承类中添加.addLast(“logging”, new LoggingHandler(LogLevel.INFO))这行代码时Netty就会以给定的日志级别打印出LoggingHandler中的日志。可以对入站\出站事件进行日志记录,从而方便我们进行问题排查。public class NettyClientChannelInitializer extends ChannelInitializer<SocketChannel>转载 2020-07-09 09:05:15 · 5132 阅读 · 0 评论 -
Netty中的ByteBuf和java提供的原生ByteBuffer比较
ByteBuf产生原因当我们进行数据传输的时候,往往需要使用到缓冲区,常用的缓冲区就是JDK NIO类库提供的java.nio.Buffer。7种基础类型(Boolean除外)都有自己的缓冲区实现,对于NIO编程而言,我们主要使用的是ByteBuffer。从功能角度而言,ByteBuffer完全可以满足NIO编程的需要,但是由于NIO编程的复杂性,ByteBuffer也有其局限性,它的主要缺点如下。(1)ByteBuffer长度固定,一旦分配完成,它的容量不能动态扩展和收缩,当需要编码的对象大于By转载 2020-07-08 10:11:34 · 556 阅读 · 0 评论 -
SimpleChannelInboundHandler和ChannelInboundHandlerAdapter区别
在Netty中客户端的Handler一般继承SimpleChannelInboundHandler抽象类,服务端Handler一般继承ChannelInboundHandlerAdapter抽象类,那么这两个抽象类到底有什么区别呢?由图可以看出,两个类之间是继承关系。客户端:在客户端,当 channelRead0() 方法完成时,你已经有了传入消息,并且已经处理完它了。当该方法返回时,SimpleChannelInboundHandler负责释放指向保存该消息的ByteBuf的内存引用。服务端:在E转载 2020-07-06 11:50:12 · 1231 阅读 · 0 评论 -
Netty使用中出现java.base/java.lang.String cannot be cast to io.netty.buffer.ByteBuf
原因:解码器用错,客户端或服务端选择ByteBuf封装消息,但是ChannelInitializer继承类中使用了String的解码器,String不能转成ByteBuf,把消息解码成String抛出来了。解决方法:1.去掉解码器 2.客户端或服务端的消息不用ByteBuf封装,直接传Stri原创 2020-07-05 21:24:44 · 4969 阅读 · 0 评论 -
Netty之ChannelHandler
ChannelHandler是netty中的核心处理部分,我们使用netty的绝大部分代码都写在这部分,所以了解它的一些机制和特性是很有必要的。https://www.jianshu.com/p/96a50869b527转载 2020-07-04 11:00:26 · 156 阅读 · 0 评论 -
Netty中ChannelInitializer的使用
Netty中ChannelInitializer的使用原创 2020-07-04 09:37:10 · 5031 阅读 · 2 评论 -
netty监听ip地址时只能监听本地地址而不能监听其他ip地址例如云服务器的原因
首先,对于一个程序来讲,它所绑定的IP只能是其所在机器(无论物理机还是虚拟机)上的某个网卡的IP地址,这个你可以到机器上运行ifconfig查看。其次,所谓绑定的含义是规定程序能够监听到哪个目的地IP的IP包,比如机器有两个网卡A和B,IP地址分别是AIP和BIP,你的程序绑定AIP,那么操作系统只会将目的地是AIP的IP包转发给你的程序。0.0.0.0是特殊的,它代表着能够转发目的地IP是机器上任意IP的IP包到你的程序。最后,为何可以通过公网IP访问到你的机器?这是因为云服务商给你做了NAT,而这个转载 2020-07-03 18:07:36 · 2157 阅读 · 0 评论 -
SpringBoot整合Netty的简单入门
例1例2例3转载 2020-07-03 15:35:55 · 324 阅读 · 0 评论 -
什么是Netty
通俗地讲,Netty 能做什么?Netty最全常见面试题转载 2020-07-02 14:57:46 · 150 阅读 · 0 评论