2024年3月6日
基于WebSocket协议的Netty开发 WebSocket是一种在单个TCP连接上进行全双工通信的协议。在这篇博客中,我们将使用Netty开发一个基于WebSocket协议的实时聊天系统。 1. 环境准备 首先,我们需要在项目中引入Netty的依赖。在Maven项目中,添加以下依赖: 1……
阅读全文
2024年3月6日
基于HTTP协议的Netty开发 Netty是一个高性能、易于使用的NIO客户端服务器框架,用于快速开发可维护的高性能协议服务器和客户端程序。在这篇博客中,我们将使用Netty开发一个基本的HTTP服务器。 1. 环境准备 首先,我们需要在项目中引入Netty的依赖。在Maven项目中,添……
阅读全文
2024年3月6日
Netty 中的 Future 和 Promise 组件是用于处理异步操作结果的两个接口。Future 表示一个异步操作的结果,它可以用于检查操作是否完成、获取操作结果、取消操作等。Promise 是 Future 的子接口,它可以用于设置操作结果、通知操作完成等。以下是 Netty 中 Future 和 Promise 组件的部分代码,并添加了中文注释: 1 2 3 4 5 6 7 8 9 10 11……
阅读全文
2024年3月6日
Netty 的线程模型 Netty 线程模型 的设计,也是基于 Reactor 模型,尽管不同的 NIO 框架 对于 Reactor 模式 的实现存在差异,但本质上还是遵循了 Reactor 的基础线程模型。 Reactor 单线程模型 Reactor 单线程模型,是指所有的 I/O 操作 都在同一个 NIO 线程 上完成。NIO 线程 的职责如下。 作为 NIO 服务端,接收客户端的 TCP 连接; 作为 NIO 客户端,向服务端发起 TCP 连接;……
阅读全文
2024年3月6日
类似于 java.nio 包 的 Channel,Netty 提供了自己的 Channel 和其子类实现,用于异步 I/O 操作 等。Unsafe 是 Channel 的内部接口,聚合在 Channel 中协助进行网络读写相关的操作,因为它的设计初衷就是 Channel 的内部辅助类,不应该被 Netty 框架 的上层使用者调用,所以被命名为 Unsafe。 Channel 组件 Netty 的 Channel 组件 是 Netty 对网络操作的封装……
阅读全文
2024年3月6日
Netty 的 ChannelPipeline 和 ChannelHandler 机制类似于 Servlet 和 Filter 过滤器,这类拦截器实际上是职责链模式的一种变形,主要是为了方便事件的拦截和用户业务逻辑的定制。 Servlet Filter 能够以声明的方式(web.xml 配置文件)插入到 HTTP 请求响应的处理过程中,用于拦截请求和响应,以便能够查看、提取或以某种方式操作正在客户端和服务器之间交换的数……
阅读全文
2024年3月6日
Netty 中的 ByteBuf 组件是一个高性能的字节缓冲区,它可以用于网络通信、文件 IO 等场景。ByteBuf 的实现基于 Netty 的内存管理机制,可以有效地减少内存拷贝和内存分配的开销。以下是 Netty 中 ByteBuf 组件的部分代码,并添加了中文注释: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40……
阅读全文
2024年3月6日
Netty 是一个高性能、异步事件驱动的网络应用程序框架,它使用了 NIO 技术来提供高性能的网络通信。在 NIO 中,有三种常用的多路复用器(Multiplexor):Selector、Poll 和 Epoll。这些多路复用器可以同时监听多个网络连接的 IO 事件,从而提高网络通信的效率。 Selector Selector 是 Java NIO 中的一种多路复……
阅读全文
2024年3月6日
网上关于各种 IO 的博文已经多到飞起,如果你是大神,可以跳过我这个菜鸟的拙文,本博文没有什么特别 NB 的东西,只是集百家之长,并且以自己感到简单舒适的方式输出自己的理解,及学习过程中的经验。 IO 及基本概念 1、流的概念和作用 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对……
阅读全文
2024年3月6日
传统的 BIO 编程 网络编程的基本模型是 Client/Server 模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的 IP 地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket) 进行通信。 在基于传统同步阻塞……
阅读全文