资讯专栏INFORMATION COLUMN

Netty对socket的抽象

Donald / 1874人阅读

摘要:抽象在中步骤监听端口对应就是,即事件循环,这里的循环包括两个部分,一个是新连接的接入,而另一个则是当前存在连接的数据流的读写。对的抽象服务端接收数据流的载体都是基于,封装了许多高可用的,我们可以基于这些与底层数据流做通信。

传统socket

首先还是先了解下传统socket下的通信流程

流程很清晰,细节不讲太多。

Netty抽象

在netty中步骤1监听端口对应就是NioEventLoop,即事件循环,这里的循环包括两个部分,一个是新连接的接入,而另一个则是当前存在连接的数据流的读写。

接着接到一个新用户的连接,而其在java底层是作为Socket来处理,即在IO下是socket,NIO下是SocketChannel,而Netty将其自定义封装为Channel,基于此Channel,一系列的读写都可以在其连接上工作。(对Socket的抽象)

服务端接收数据流的载体都是基于ByteBuf,ByteBuf封装了许多高可用的API,我们可以基于这些API与底层数据流做通信。

当数据流到达服务端后,服务端需要处理一些业务逻辑,这时就是ChannelHandler。我们也可以自定义Java对象,在ChannelHandler中做处理,数据包的分包、不同类型数据包的Java转换。

数据流的写出也是基于ByteBuf。

ChannelHandler是一个列的形式。Netty将这些逻辑串了起来,让用户方便的对业务做处理。

相关项目

关于Netty的产品导向项目 UncleCatMySelf/SBToNettyChat

如果本文对你有所帮助,欢迎关注本人技术公众号,谢谢。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77209.html

相关文章

  • netty实战》阅读笔记(1)——Netty 概念及体系结构

    摘要:它使用了事件通知以确定在一组非阻塞套接字中有哪些已经就绪能够进行相关的操作。目前,可以把看作是传入入站或者传出出站数据的载体。出站事件是未来将会触发的某个动作的操作结果,这些动作包括打开或者关闭到远程节点的连接将数据写到或者冲刷到套接字。 netty的概念 定义 Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。我们可以很简单的...

    solocoder 评论0 收藏0
  • 从Java Socket非阻塞到Netty入门流程

    摘要:事件循环新连接接入连接上的数据读取抽象连接抽象业务逻辑处理读写数据期间的业务层动态链处理多个组成,让消息可以层层处理数据接收基本的数据处理基于公众号猫说学习交流群现架构设计码农兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。 本博客 猫叔的博客,转载请申明出处阅读本文约 4分钟 适读人群:同学 Java IO,Socket非阻塞通信流程 这里我们使用一个内嵌的永久循环,...

    fsmStudy 评论0 收藏0
  • Netty 源码分析之 一 揭开 Bootstrap 神秘红盖头 (客户端)

    摘要:目录源码分析之番外篇的前生今世的前生今世之一简介的前生今世之二小结的前生今世之三详解的前生今世之四详解源码分析之零磨刀不误砍柴工源码分析环境搭建源码分析之一揭开神秘的红盖头源码分析之一揭开神秘的红盖头客户端源码分析之一揭开神秘的红盖头服务器 目录 Netty 源码分析之 番外篇 Java NIO 的前生今世 Java NIO 的前生今世 之一 简介 Java NIO 的前生今世 ...

    zhaot 评论0 收藏0
  • Netty3文档翻译(二)

    摘要:丰富的缓存数据结构使用它自己的缓存来表示字节序列而不是的。针对有一个定义良好的事件模型。有一些协议是多层的建立在其他低级协议基础上。此外,甚至不是完全线程安全的。协议由标准化为。协议缓存整合是一个高效二进制协议的快速实现。 Chapter 2、结构概览 这一节我们将确认Netty提供的核心功能是什么,以及它们怎么构成一个完整的网络应用开发堆栈。 1、丰富的缓存数据结构 Netty使用它...

    Zhuxy 评论0 收藏0
  • 【自己读源码】Netty4.X系列(二) 启动类成员Channel

    摘要:下面无耻的贴点源码。启动类我们也学,把启动类抽象成两层,方便以后写客户端。别着急,我们慢慢来,下一篇我们会了解以及他的成员,然后,完善我们的程序,增加其接收数据的能力。文章的源码我会同步更新到我的上,欢迎大家,哈哈。 废话两句 这次更新拖了很长时间,第一是自己生病了,第二是因为最开始这篇想写的很大,然后构思了很久,发现不太合适把很多东西写在一起,所以做了点拆分,准备国庆前完成这篇博客。...

    waterc 评论0 收藏0

发表评论

0条评论

Donald

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<