前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Java Socket非阻塞到Netty入门流程

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

作者头像
Java猫说
发布2019-07-22 14:19:02
5920
发布2019-07-22 14:19:02
举报
文章被收录于专栏:Java猫说Java猫说

本博客 猫叔的博客,转载请申明出处 阅读本文约 “4分钟” 适读人群:同学

Java IO,Socket非阻塞通信流程

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

image
image

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

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

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

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

Netty入门

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

image
image
NioEventLoop(事件循环)

1、新连接接入

2、连接上的数据读取

Channel(抽象连接)

Socket、SocektChannel(IO\NIO)抽象

ChannelHandler(业务逻辑处理)

读写数据期间的业务层

PipeLine(动态链处理)

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

ByteBuf(数据接收)

基本的数据处理基于ByteBu

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java IO,Socket非阻塞通信流程
  • Netty入门
    • NioEventLoop(事件循环)
      • Channel(抽象连接)
        • ChannelHandler(业务逻辑处理)
          • PipeLine(动态链处理)
            • ByteBuf(数据接收)
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档