摘要:事件循环新连接接入连接上的数据读取抽象连接抽象业务逻辑处理读写数据期间的业务层动态链处理多个组成,让消息可以层层处理数据接收基本的数据处理基于公众号猫说学习交流群现架构设计码农兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。
本博客 猫叔的博客,转载请申明出处Java IO,Socket非阻塞通信流程阅读本文约 “4分钟”
适读人群:同学
这里我们使用一个内嵌的永久循环,来让Socket成为一个非阻塞的通信流程。
如上图所示,ServerSocket是我们自建的一个类,通过启动线程,且线程内置一个真循环,防止accept阻塞;
在客户端监听类上,将监听到的socket作为参数,传递到客户端监听类上,并再次启动线程,获取一个InputStream,同时再次在这个刚刚启动线程内置一个真循环,为的是不断获取信息并回写;
这里要注意的是,第一个真循环是保证获取新连接不会阻塞,第二个真循环是保证不停的获取客户端信息并回写;
关于客户端则通过端口和IP,启动线程,通过一个循环不停的向服务端写数据;
Netty入门基于上面的图,我们也可以学习Netty相关的基础入门。
NioEventLoop(事件循环)1、新连接接入
2、连接上的数据读取
Channel(抽象连接)Socket、SocektChannel(IONIO)抽象
ChannelHandler(业务逻辑处理)读写数据期间的业务层
PipeLine(动态链处理)多个ChannelHandler组成,让消息可以层层处理
ByteBuf(数据接收)基本的数据处理基于ByteBu
公众号:Java猫说学习交流群:728698035
现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/75483.html
摘要:的产生原因是使的编程更容易。定义一个异步事件驱动的网络应用框架,帮助快速开发高性能的客户端与服务端。每一个一个客户端请求注册一个这个会处理这个请求的事件直到这个请求结束。 近日在学习netty,却发现没那么容易上手,专研了几天后算是弄清楚了netty到底是干什么的,所看资料比较多,此文章便把这些资料与我的思考做一个总结帮助大家更好入门。 要更好理解netty首先要了解以下一些前置知识 ...
摘要:后改良为用线程池的方式代替新增线程,被称为伪异步。最大的问题是阻塞,同步。每次请求都由程序执行并返回,这是同步的缺陷。这些都会被注册在多路复用器上。多路复用器提供选择已经就绪状态任务的能力。并没有采用的多路复用器,而是使用异步通道的概念。 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司...
摘要:后改良为用线程池的方式代替新增线程,被称为伪异步。最大的问题是阻塞,同步。每次请求都由程序执行并返回,这是同步的缺陷。这些都会被注册在多路复用器上。多路复用器提供选择已经就绪状态任务的能力。并没有采用的多路复用器,而是使用异步通道的概念。 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司...
摘要:协作方式在高并发场景中,必须要让服务器同时维护大量请求连接,可能是一个服务进程创建另一个进程,也可能是一个服务线程去创建另一个线程,但连接结束后进程或线程就销毁了,这是一个巨大的浪费一个自然的想法就是通过创建一个进程线程池从而达到资源复用, showImg(https://segmentfault.com/img/bVbtgn1?w=313&h=208); 协作方式 在高并发场景中,必...
摘要:提供异步的事件驱动的网络应用程序框架和工具,用以快速开发高性能高可靠性的网络服务器和客户端程序。总结我们完成了服务端的简单搭建,模拟了聊天会话场景。 之前一直在搞前端的东西,都快忘了自己是个java开发。其实还有好多java方面的东西没搞过,突然了解到netty,觉得有必要学一学。 介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框...
阅读 3284·2021-11-25 09:43
阅读 2972·2021-10-15 09:43
阅读 1906·2021-09-08 09:36
阅读 2880·2019-08-30 15:56
阅读 704·2019-08-30 15:54
阅读 2634·2019-08-30 15:54
阅读 2925·2019-08-30 11:26
阅读 1184·2019-08-29 17:27