上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页
摘要: 本文阐述了Netty中常见的粘包和拆包问题,并深入分析了常用的解决方案。 <! more Netty高级进阶之Netty中的粘包和拆包的解决方案 粘包和拆包简介 粘包和拆包是TCP网络编程中不可避免的,无论是服务端和客户端,当读取或发送消息时,都需要考虑TCP底层的粘包/拆包机制。 TCP是个流协议 阅读全文
posted @ 2022-05-04 22:20 灯塔下的守望者 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 本通过实战演练,学习了如何基于Netty的websocket开发一个网页聊天室。 <! more Netty高级进阶之基于Netty的Websocket开发网页聊天室 Webdocket简介 Websockt是一种在单个TCP连接上进行全双工通信的协议。 Websocket使客户端和服务端的数据交互 阅读全文
posted @ 2022-05-04 22:19 灯塔下的守望者 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 本通过实战演练,学习了如何基于Netty开发一个HTTP服务器。 <! more Netty高级进阶之基于Netty的HTTP服务器开发 介绍 Netty的HTTP协议栈可靠性高,性能优异。相对于传统的Tomcat、Jetty等服务器,它更加轻量级和小巧,灵活性和定制型也更好。 功能需求 1. Ne 阅读全文
posted @ 2022-05-04 22:17 灯塔下的守望者 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 本文通过实战演练,学习了如何使用Netty开发一个群聊天室。 <! more Netty高级进阶之基于Netty的群聊天室案例 案例 要求 1. 编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯 2. 实现多人群聊 3. 服务器端:可以监测用户上线,离线,并实现消息转发功能 4 阅读全文
posted @ 2022-05-04 22:16 灯塔下的守望者 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了Netty编解码器的继承体系、常用API以及实际应用。 <! more netty高级 Netty编解码器 Java的编解码 1. 编码(Encode)称为序列化,它将对象序列为字节数组,用于网络传输、数据持久化或者其他用途。 2. 解码(Decode)称为反序列化,它将从网络、磁盘等读取 阅读全文
posted @ 2022-05-04 22:15 灯塔下的守望者 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 本文通过一个Netty入门案例来阐述Netty的异步模型。 <! more netty入门案例 Netty是由JBOSS提供的一个开源框架,它的Maven坐标如下: Netty服务端编写 服务端实现步骤 1. 创建bossGroup线程组: 处理网络事件 连接事件 2. 创建workerGroup线 阅读全文
posted @ 2022-05-04 22:14 灯塔下的守望者 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了Netty的核心API以及他们的使用。 <! more Netty核心API介绍 ChannelHandler及其实现类 API关系如下: 如果图片无法显示,请看这里 Netty开发中需要定义一个Handler类去实现ChannelHandler接口或其子类或其实现类,然后通过重写相关方法 阅读全文
posted @ 2022-05-04 22:13 灯塔下的守望者 阅读(18) 评论(0) 推荐(0) 编辑
摘要: Netty线程模型 Netty的设计主要基于主从Reactor的多线程模式,并做了一定的改进。 1. 简单版Netty模型 BossGroup线程维护Selector,ServerSocketChannel注册到Selector上,只关注连接请求处理事件(主Reactor) 当接收到来自客户端的连接 阅读全文
posted @ 2022-05-04 22:11 灯塔下的守望者 阅读(16) 评论(0) 推荐(0) 编辑
摘要: Reactor模型 通过一个或者多个输入传递给服务器的模式,服务端程序处理传入的多个请求,并将他们同步分派到处理线程,Reactor模式也叫Dispatch模式。 Reactor模式使用IO复用监听事件,分发给某个线程(进程),这是网络服务器高并发处理的关键。 1. 单Reactor单线程 Sele 阅读全文
posted @ 2022-05-04 22:10 灯塔下的守望者 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 线程模型 线程模型基本介绍 不同的线程模型对性能影响很大,目前存在的线程模型有: 传统阻塞I/O服务模型 Reactor模型 根据Reactor的数量和处理资源池线程的数量不同,可以分为3种 单Reactor单线程 单Reactor多线程 多Reactor多线程 传统阻塞I/O服务模型 采用阻塞I/ 阅读全文
posted @ 2022-05-04 22:09 灯塔下的守望者 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Netty提供异步的、基于事件驱动的网络应用程序框架,用于快速开发高性能、高可靠性的网络IO程序。 <! more netty核心原理 netty介绍 官网: "https://netty.io/" 原生NIO存在的问题 1. NIO类库和API繁杂,使用麻烦。需要熟练掌握Selector、Serv 阅读全文
posted @ 2022-05-04 22:07 灯塔下的守望者 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 选择器(Selector) 基本介绍 用一个线程,处理多个客户端连接,就会用到NIO的Selector(选择器)。 Selector能够检测多个注册的服务端通道上是否有事件发生。如果有事件发生,便获取事件,然后针对每个事件进行响应的处理。 这样可以用单线程去管理多个通道,也就是管理多个连接和请求。 阅读全文
posted @ 2022-05-04 15:20 灯塔下的守望者 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 通道(Channel) 基本介绍 NIO中所有的IO都是从通道(Channel)开始的。NIO的通道类似于流,但是有区别: 1. 通道可读可写,流一般是单向的(只能读或者写,所以之前socket的demo里面分别创建一个输入流和输出流)。 2. 通道可以异步读写。 3. 通道总是基于缓冲区Buffe 阅读全文
posted @ 2022-05-04 15:18 灯塔下的守望者 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 缓冲区(Buffer) 基本介绍 缓冲区(Buffer):缓冲区本质上是一个可读可写的内存块。 可以理解成一个数组,该对象提供了一组方法,可以轻松的操作内存块。 缓冲区内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。 Channel提供从网络读取数据的通道,但是读取或者写入数据都必须经过Buff 阅读全文
posted @ 2022-05-04 15:15 灯塔下的守望者 阅读(98) 评论(0) 推荐(0) 编辑
摘要: nio编程 NIO介绍 Java NIO,全称为 ,是指JDK提供得到新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(New IO),是同步非阻塞的。 1. NIO有三大核心部分,Channel(通道),Buffer(缓冲区),Selector(选择器)。 阅读全文
posted @ 2022-05-04 15:11 灯塔下的守望者 阅读(55) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页