Java NIO(Java Non-Blocking IO:非阻塞式IO)(2)

news/2024/10/19 2:17:18/

1.NIO非阻塞网络编程原理分析

1>.NIO非阻塞网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel)关系梳理图:
在这里插入图片描述
说明:

①.当客户端连接时,会通过服务器端ServerSocketChannel得到/生成对应的SocketChannel;

②.通过register(Selector sel,int ops)方法将SocketChannel注册到Selector上(一个Selector上可以注册多个SocketChannel);

③.注册后会返回一个SelectionKey,该SelectionKey会被Selector以集合的方式管理;

④.Selector会通过select()方法监听注册到Selector上的SocketChannel,select()方法会返回有事件(OP_READ,OP_WRITE,OP_CONNECT,OP_ACCEPT)发生的SocketChannel的个数;

⑤.进一步得到各个有事件发生的SelectionKey,再通过SelectionKey的channel()方法反向获取对应的SocketChannel;

⑥.最后可以通过得到的Channel完成业务(事件)处理;

2.NIO非阻塞网络编程快速入门

2.1.需求

编写一个NIO入门案例,实现服务器端和客户端之间的数据简单通讯(非阻


http://www.ppmy.cn/news/58019.html

相关文章

1 认识仿真工具Packet Tracer【实验】【计算机网络】

1 认识仿真工具Packet Tracer【实验】【计算机网络】 前言推荐1 认识仿真工具Packet Tracer1.1账号注册与Packet Tracer软件下载1.1.1 下载1.1.2 安装 1.2 Packet Tracer界面简介1.2.1 总述1.2.2 详细 1.3网络拓扑构建与设备模块添加1.3.1如何往工作区中添加设备1.3.2添加连线1…

【移动端网页布局】流式布局案例 ④ ( Banner 栏制作 | 固定定位 | 标准流 | 百分比宽度设置 )

文章目录 一、Banner 栏样式及核心要点1、实现效果2、核心要点分析 二、完整代码示例1、HTML 标签结构2、CSS 样式3、展示效果 一、Banner 栏样式及核心要点 1、实现效果 在上一篇博客中 , 实现了 搜索栏 , 在本篇博客开始实现 搜索栏 下方的 Banner 栏 ; 2、核心要点分析 Bann…

python:分层抽样(取出0和1中70%的数值)

分层抽样是一种从总体中抽取样本的方法,它将总体划分为若干个层次,然后在每一层中分别抽取样本。分层抽样可以保证每一层中的样本数量相对均衡,从而可以提高样本的代表性。在本文中,我将介绍分层抽样的原理、优点以及应用场景&…

大事件——100篇文章帮助小白顺利进入嵌入式领域

哈喽伙伴们,最近有很多刚入门的小白找到我,让我给一些学习方向。作为一个从嵌入式领域摸爬滚打到现在的“前辈”来说,对于每个小伙伴我都想倾囊相助,但是奈何本人的精力实在有限。所以综合考虑下,决定在这里开一个专栏…

真题详解(DNS)-软件设计(六十三)

真题详解(有向图)-软件设计(六十二)https://blog.csdn.net/ke1ying/article/details/130443040 顺序存储:元素和存储空间相对位置来表示数据元素之间逻辑关系。 RFB:远程访问图形用户界面的简单协议。 在ISO/IEC9126软…

(05)基础强化:字符串拘留池,格式化,StringBuilder,垃圾回收,弱引用

一、复习 1.什么是接口?说说你对接口的理解。 (提示:概念、语法、应用场景,与抽象类的区别。说出最特别的) 接口是一种规范、标准,一种抽象的概念,所以本身无法实现&#…

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解 pringCloud provider(服务提供方) consumer(服务调用方) server(注册中心) 运行原理 Provider 第一步 provider注册到se…

Ansible的脚本-playbook 剧本

目录 1.剧本(playbook) 1.playbook介绍 2. playbooks 的组成 3.案例:编写httpd的playbook 4.定义、引用变量 5.指定远程主机sudo切换用户 6.when条件判断 7.迭代 2.playbook的模块 1.Templates 模块 2.tags 模块 3.Roles 模块 1.…