从Java Socket非阻塞到Netty入门流程

Java IO,Socket非阻塞通信流程

这里我们使用一个内嵌的永久循环,来让Socket成为一个非阻塞的通信流程。

从Java Socket非阻塞到Netty入门流程

如上图所示,ServerSocket是我们自建的一个类,通过启动线程,且线程内置一个真循环, 防止accept阻塞

在客户端监听类上,将监听到的socket作为参数,传递到客户端监听类上,并再次启动线程,获取一个InputStream,同时再次在这个刚刚启动线程内置一个真循环,为的是 不断获取信息并回写

这里要注意的是,第一个真循环是 保证获取新连接不会阻塞 ,第二个真循环是 保证不停的获取客户端信息并回写

关于客户端则通过端口和IP,启动线程,通过一个循环不停的向服务端数据

Netty入门

基于上面的图,我们也可以学习Netty相关的基础入门。

从Java Socket非阻塞到Netty入门流程

NioEventLoop(事件循环)

1、新连接接入

2、连接上的数据读取

Channel(抽象连接)

Socket、SocektChannel(IO/NIO)抽象

ChannelHandler(业务逻辑处理)

读写数据期间的业务层

PipeLine(动态链处理)

多个ChannelHandler组成,让消息可以层层处理

ByteBuf(数据接收)

基本的数据处理基于ByteBu

原文 

https://segmentfault.com/a/1190000023029053

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 从Java Socket非阻塞到Netty入门流程

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址