首页 > 其他分享 >netty 分享

netty 分享

时间:2023-07-21 09:45:27浏览次数:26  
标签:netty Socket 模式 接字 分享 连接 服务端 客户端

讲解步骤

Linux网络编程
什么是Socket
网络事件模型
连接事件优化—多路复用epoll
I/O
BIO/OIO:食堂排队打饭模式:排队在窗口,打好才走;
NIO:点单、等待被叫模式:等待被叫,好了自己去端;
AIO:包厢模式:点单后菜直接被端上桌。
NIO 核心组件
Selector选择器
Channel管道
buffer缓冲区
核心原理
reactor 模型
概念: Reactor 是一种开发模式,模式的核心流程: 注册感兴趣的事件 -> 扫描是否有感兴趣的事件发生 -> 事件发生后做出相应的处理
单线程模型
多线程模型
netty 要点
概要
工作原理
入门程序解读
Bootstrap、ServerBootstrap
Future、ChannelFuture
Channel
Selector
ChannelHandler 及其实现类
Pipeline 和 ChannelPipeline
ChannelHandlerContext
ChannelOption
EventLoopGroup 和其实现类 NioEventLoopGroup
Unpooled 类
源码解读
启动服务
构建链接
数据处理
Linux网络编程
什么是Socket
套接字(Socket)是计算机网络通信中的一种编程接口,它提供了在网络上进行数据传输的方法。套接字应用程序可以通过套接字接口与网络中的其他计算机建立连接,并在连接上发送和接收数据。

常见的套接字类型是流套接字(Stream Socket)和数据报套接字(Datagram Socket)

从操作系统的角度看,套接字是一个C语言结构体,用于保存协议、本地地址和远程地址等信息。如图6-5所示,操作系统内核会管理所有的套接字(Socket)结构,并向用户返回一个文件描述符。Linux系统将很多资源都抽象成了文件,包括真实文件(见图6-5中的5号描述符)、设备(见图6-5中的0到2号描述符)、套接字等,因此用户可以用同一套API(read、write、close等)操作它们从服务端的角度看,套接字可分为两种,一种是“监听套接字”,一种是“普通套接字”。服务端开启监听,操作系统会激活一个监听套接字,专门用于接收客户端的连接(图6-5中的3号Socket监听8001端口)。当服务端接收(accept)连接时,操作系统会创建一个与客户端对应的普通套接字。在图6-5中,客户端B连接8001端口,在服务端应答后,服务端将变成如图6-6所示的状态。客户端B连接8001端口,服务端接收后,操作系统将创建一个新的普通套接字(见图6-6中的5号Socket),代表客户端B。回到Sunnet系统,客户端B连接后,网络线程会为开启8001监听端口的服务,并发送一条SOCKET_ACCEPT类型(对应于SocketAcceptMsg对象)的消息,listenFd为3,clientFd为5

所谓“建立连接”,是指双端都准备好套接字的结构体;同理,所谓“断开连接”,是指双端都已销毁套接字的结构体。由于一端的套接字很难感知另一端的状态,因此TCP通过“三次握手”和“四次挥手”这两个很复杂的过程,来尽可能地保证双端都处于“准备好”或“已销毁”的状态

网络事件模型

连接事件优化—多路复用epoll

I/O
BIO/OIO:食堂排队打饭模式:排队在窗口,打好才走;
NIO:点单、等待被叫模式:等待被叫,好了自己去端;
AIO:包厢模式:点单后菜直接被端上桌。

NIO 核心组件
Selector选择器
Channel管道
buffer缓冲区
核心原理

reactor 模型

概念: Reactor 是一种开发模式,模式的核心流程: 注册感兴趣的事件 -> 扫描是否有感兴趣的事件发生 -> 事件发生后做出相应的处理
单线程模型

多线程模型

Websocket借用了HTTP的协议来完成一部分握手(应用层的握手,不是TCP的握手

netty 要点

概要

工作原理

入门程序解读

Bootstrap、ServerBootstrap

Future、ChannelFuture

Channel

Selector

ChannelHandler 及其实现类

Pipeline 和 ChannelPipeline

ChannelHandlerContext

ChannelOption

EventLoopGroup 和其实现类 NioEventLoopGroup

Unpooled 类

源码解读
启动服务
构建链接
数据处理

标签:netty,Socket,模式,接字,分享,连接,服务端,客户端
From: https://www.cnblogs.com/rainbowbridge/p/17570421.html

相关文章

  • 三方系统多渠道多场景的思考及代码分享
    一背景我们的业务中,经常会遇到多渠道+多场景的的需求。多渠道我们可以理解为,多个服务商同时为我们某一个功能提供服务,多场景就是同一个服务商下面的多种服务,我们通过几个例子来具体看下:我们有个电商平台,系统在付款时候弹出选项,让用户自主选择支付宝/微信/京东白条等支付,那么这......
  • Java Netty简介
    Netty和Mina是Java世界非常知名的通讯框架。它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户netty.io(http://netty.io/)。Netty是一个基于JAVANIO类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定......
  • CherryPy教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介CherryPy是一个使用Python编程语言的面向对象的Web应用程序框架。它旨在通过包装HTTP协议来快速开发Web应用程序,但保持在较低级别,并且提供的内容远不及RFC7231中定义的内容。CherryPy入门教程-从基本到高级概念的简单步骤了解CherryPy,包括简介,环境设置,词......
  • html 数据可视化大屏展示模板源码分享(第一期)
    1、angular+echart.js统计数据图表读取投屏数据大屏2、生意参谋大数据可视化HTML模板3、大数据可视化展板通用模板4、基于echarts实现的销售统计数据可视化大屏模板5、新能源车联网综合大数据平台6、厅店效能大屏监控看板7、东海省交通大数据分析平台8、基于echarts......
  • JProfiler激活码分享最新可用jprofiler13许可证密钥
    JProfiler是一款专业的Java应用程序性能分析工具,可帮助开发人员识别和解决Java应用程序中的性能问题。JProfiler支持JavaSE、JavaEE和Android平台,提供了多种分析选项,包括CPU分析、内存分析和线程分析等。JProfiler激活码获取 使用JProfiler,开发人员可以实时查看Java应用程......
  • 【专题】2023中国品牌消费趋势洞察报告PDF合集分享(附原数据表)
    报告链接:https://tecdat.cn/?p=33262原文出处:拓端数据部落公众号品牌是企业乃至国家竞争力的综合体现。在2016年6月20日,国务院办公厅发布了《关于发挥品牌引领作用推动供富结构升级的意见》,首次提出了设立“中国品牌日”的建议。站在时代变革的风口,中国品牌抓住了创新发展的机......
  • 【专题】2022年中国跨境电商行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32044近年来,我国的跨境电子商务发展迅速,在过去五年中,其贸易额增长率达到了16.2%,已经成为稳定对外贸易的一支重要力量(查看文末了解报告PDF版本免费获取方式)。点击阅读原文,获取专题报告全文,解锁文末52份跨境电商行业相关报告。一方面,随着跨境电子商......
  • 办公技巧:分享4个图片转Excel的方法,再也不用加班录表格了!
    日常办公当中经常需要把纸质表格转换为电子表格,人为手动编辑录入的效率非常低,这里小编给大家推荐使用图片转Excel的方式来快速操作,省时又省力,这样我们再也不用加班录表格了!一、微信搜一搜微信是大家手机中必备的软件,其中的搜一搜功能,可以帮我们识别图片中的表格,并转换为Excel格式,很......
  • 关于Python数据可视化的直播分享主题有哪些
    Python数据可视化的直播分享主题数据可视化在数据分析和数据科学中起着重要的作用。Python是一种强大的编程语言,拥有丰富的数据可视化工具和库。在本文中,我们将介绍一些关于Python数据可视化的直播分享主题,并提供相应的代码示例。1.数据可视化基础在开始之前,让我们先了解一些数......
  • 特殊案例分享
    描述   配置 natstaticoutbound10.4.207.11172.19.11.2descriptionDX_GJinterfaceGigabitEthernet0/5portlink-moderouteipaddress172.19.11.2255.255.255.252natoutbound2010nathairpinenablenatstaticenableiproute-static192.168.69......