netty权威指南目录

目录

第一版

第二版


第一版

目录

基础篇 走进Java NIO
第1章 Java的I/O演进之路
1.1 I/O基础入门
1.1.1 Linux网络I/O模型简介
1.1.2 I/O多路复用技术
1.2 Java的I/O演进
1.3 总结
第2章 NIO入门
2.1 传统的BIO编程
2.1.1 BIO通信模型图
2.1.2 同步阻塞式I/O创建的TimeServer源码分析
2.1.3 同步阻塞式I/O创建的TimeClient源码分析
2.2 伪异步I/O编程
2.2.1 伪异步I/O模型图
2.2.2 伪异步式I/O创建的TimeServer源码分析
2.2.3 伪异步I/O弊端分析
2.3 NIO编程
2.3.1 NIO类库简介
2.3.2 NIO服务端序列图
2.3.3 NIO创建的TimeServer源码分析
2.3.4 NIO客户端序列图
2.3.5 NIO创建的TimeClient源码分析
2.4 AIO编程
2.4.1 AIO创建的TimeServer源码分析
2.4.2 AIO创建的TimeClient源码分析
2.4.3 AIO版本时间服务器运行结果
2.5 4种I/O的对比
2.5.1 概念澄清
2.5.2 不同I/O模型对比
2.6 选择Netty的理由
2.6.1 不选择Java原生NIO编程的原因
2.6.2 为什么选择Netty
2.7 总结

入门篇 Netty NIO开发指南
第3章 Netty入门应用
3.1 Netty开发环境的搭建
3.1.1 下载Netty的软件包
3.1.2 搭建Netty应用工程
3.2 Netty服务端开发
3.3 Netty客户端开发
3.4 运行和调试
3.4.1 服务端和客户端的运行
3.4.2 打包和部署
3.5 总结
第4章 TCP粘包/拆包问题的解决之道
4.1 TCP粘包/拆包
4.1.1 TCP粘包/拆包问题说明
4.1.2 TCP粘包/拆包发生的原因
4.1.3 粘包问题的解决策略
4.2 未考虑TCP粘包导致功能异常案例
4.2.1 TimeServer的改造
4.2.2 TimeClient的改造
4.2.3 运行结果
4.3 利用LineBasedFrameDecoder解决TCP粘包问题
4.3.1 支持TCP粘包的TimeServer
4.3.2 支持TCP粘包的TimeClient
4.3.3 运行支持TCP粘包的时间服务器程序
4.3.4 LineBasedFrameDecoder和StringDecoder的原理分析
4.4 总结
第5章 分隔符和定长解码器的应用
5.1 DelimiterBasedFrameDecoder应用开发
5.1.1 DelimiterBasedFrameDecoder服务端开发
5.1.2 DelimiterBasedFrameDecoder客户端开发
5.1.3 运行DelimiterBasedFrameDecoder服务端和客户端
5.2 FixedLengthFrameDecoder应用开发
5.2.1 FixedLengthFrameDecoder服务端开发
5.2.2 利用telnet命令行测试EchoServer服务端
5.3 总结

中级篇 Netty编解码开发指南
第6章 编解码技术
6.1 Java序列化的缺点
6.1.1 无法跨语言
6.1.2 序列化后的码流太大
6.1.3 序列化性能太低
6.2 业界主流的编解码框架
6.2.1 Google的Protobuf介绍
6.2.2 Facebook的Thrift介绍
6.2.3 JBoss Marshalling介绍
6.3 总结
第7章 Java序列化
7.1 Netty Java序列化服务端开发
7.2 Java序列化Netty客户端开发
7.3 运行结果
7.4 总结
第8章 Google Protobuf编解码
8.1 Protobuf的入门
8.1.1 Protobuf开发环境搭建
8.1.2 Protobuf编解码开发
8.1.3 运行Protobuf例程
8.2 Netty的Protobuf服务端开发
8.2.1 Protobuf版本的图书订购服务端开发
8.2.2 Protobuf版本的图书订购客户端开发
8.2.3 Protobuf版本的图书订购程序功能测试
8.3 Protobuf的使用注意事项
8.4 总结
第9章 JBoss Marshalling编解码
9.1 Marshalling开发环境准备
9.2 Netty的Marshalling服务端开发
9.3 Netty的Marshalling客户端开发
9.4 运行Marshalling客户端和服务端例程
9.5 总结

高级篇 Netty多协议开发和应用
第10章 HTTP协议开发应用
10.1 HTTP协议介绍
10.1.1 HTTP协议的URL
10.1.2 HTTP请求消息(HttpRequest)
10.1.3 HTTP响应消息(HttpResponse)
10.2 Netty HTTP服务端入门开发
10.2.1 HTTP服务端例程场景描述
10.2.2 HTTP服务端开发
10.2.3 Netty HTTP文件服务器例程运行结果
10.3 Netty HTTP+XML协议栈开发
10.3.1 开发场景介绍
10.3.2 HTTP+XML协议栈设计
10.3.3 高效的XML绑定框架JiBx
10.3.4 HTTP+XML编解码框架开发
10.3.5 HTTP+XML协议栈测试
10.3.6 小结
10.4 总结

第二版

目录

第1 章Java 的I/O 演进之路 
1.1 I/O 基础入门 
1.1.1 Linux 网络I/O 模型简介 
1.1.2 I/O 多路复用技术 
1.2 Java 的I/O 演进 
1.3 总结 
第2 章NIO 入门 
2.1 传统的BIO 编程 
2.1.1 BIO 通信模型图 
2.1.2 同步阻塞式I/O 创建的TimeServer 源码分析 
2.1.3 同步阻塞式I/O 创建的TimeClient 源码分析 
2.2 伪异步I/O 编程 
2.2.1 伪异步I/O 模型图 
2.2.2 伪异步I/O 创建的TimeServer 源码分析 
2.2.3 伪异步I/O 弊端分析 
2.3 NIO 编程 
2.3.1 NIO 类库简介 
2.3.2 NIO 服务端序列图 
2.3.3 NIO 创建的TimeServer 源码分析 
2.3.4 NIO 客户端序列图 
2.3.5 NIO 创建的TimeClient 源码分析 
2.4 AIO 编程 
2.4.1 AIO 创建的TimeServer 源码分析 
2.4.2 AIO 创建的TimeClient 源码分析 
2.4.3 AIO 版本时间服务器运行结果 
2.54 种I/O 的对比 
2.5.1 概念澄清 
2.5.2 不同I/O 模型对比 
2.6 选择Netty 的理由 
2.6.1 不选择Java 原生NIO 编程的原因 
2.6.2 为什么选择Netty 
2.7 总结 
入门篇 Netty NIO 开发指南 
第3 章Netty 入门应用 
3.1 Netty 开发环境的搭建 
3.1.1 下载Netty 的软件包 
3.1.2 搭建Netty 应用工程 
3.2 Netty 服务端开发 
3.3 Netty 客户端开发 
3.4 运行和调试 
3.4.1 服务端和客户端的运行 
3.4.2 打包和部署 
3.5 总结 
第4 章TCP 粘包/拆包问题的解决之道 
4.1 TCP 粘包/拆包 
4.1.1 TCP 粘包/拆包问题说明 
4.1.2 TCP 粘包/拆包发生的原因 
4.1.3 粘包问题的解决策略 
4.2 未考虑TCP 粘包导致功能异常案例 
4.2.1 TimeServer 的改造 
4.2.2 TimeClient 的改造 
4.2.3 运行结果 
4.3 利用LineBasedFrameDecoder 解决TCP 粘包问题 
4.3.1 支持TCP 粘包的TimeServer 
4.3.2 支持TCP 粘包的TimeClient 
4.3.3 运行支持TCP 粘包的时间服务器程序 
4.3.4 LineBasedFrameDecoder 和StringDecoder 的原理分析 
4.4 总结 
第5 章分隔符和定长解码器的应用 
5.1 DelimiterBasedFrameDecoder 应用开发 
5.1.1 DelimiterBasedFrameDecoder 服务端开发 
5.1.2 DelimiterBasedFrameDecoder 客户端开发 
5.1.3 运行DelimiterBasedFrameDecoder 服务端和客户端 
5.2 FixedLengthFrameDecoder 应用开发 
5.2.1 FixedLengthFrameDecoder 服务端开发 
5.2.2 利用telnet 命令行测试EchoServer 服务端 
5.3 总结 
中级篇 Netty 编解码开发指南 
第6 章编解码技术 
6.1 Java 序列化的缺点 
6.1.1 无法跨语言 
6.1.2 序列化后的码流太大 
6.1.3 序列化性能太低 
6.2 业界主流的编解码框架 
6.2.1 Google 的Protobuf 介绍 
6.2.2 Facebook 的Thrift 介绍 
6.2.3 JBoss Marshalling 介绍 
6.3 总结 
第7 章MessagePack 编解码 
7.1 MessagePack 介绍 
7.1.1 MessagePack 多语言支持 
7.1.2 MessagePack Java API 介绍 
7.1.3 MessagePack 开发包下载 
7.2 MessagePack 编码器和解码器开发 
7.2.1 MessagePack 编码器开发 
7.2.2 MessagePack 解码器开发 
7.2.3 功能测试 
7.3 粘包/半包支持 
7.4 总结 
第8 章Google Protobuf 编解码 
8.1 Protobuf 的入门 
8.1.1 Protobuf 开发环境搭建 
8.1.2 Protobuf 编解码开发 
8.1.3 运行Protobuf 例程 
8.2 Netty 的Protobuf 服务端开发 
8.2.1 Protobuf 版本的图书订购服务端开发 
8.2.2 Protobuf 版本的图书订购客户端开发 
8.2.3 Protobuf 版本的图书订购程序功能测试 
8.3 Protobuf 的使用注意事项 
8.4 总结 
第9 章JBoss Marshalling 编解码 
9.1 Marshalling 开发环境准备 
9.2 Netty 的Marshalling 服务端开发 
9.3 Netty 的Marshalling 客户端开发 
9.4 运行Marshalling 客户端和服务端例程 
9.5 总结 
高级篇 Netty 多协议开发和应用 
第10 章HTTP 协议开发应用 
10.1 HTTP 协议介绍 
10.1.1 HTTP 协议的URL 
10.1.2 HTTP 请求消息(HttpRequest) 
10.1.3 HTTP 响应消息(HttpResponse) 
10.2 Netty HTTP 服务端入门开发 
10.2.1 HTTP 服务端例程场景描述 
10.2.2 HTTP 服务端开发 
10.2.3 Netty HTTP 文件服务器例程运行结果 
10.3 Netty HTTP+XML 协议栈开发 
10.3.1 开发场景介绍 
10.3.2 HTTP+XML 协议栈设计 
10.3.3 高效的XML 绑定框架JiBx 
10.3.4 HTTP+XML 编解码框架开发 
10.3.5 HTTP+XML 协议栈测试 
10.3.6 小结 
10.4 总结 
第11 章WebSocket 协议开发 
11.1 HTTP 协议的弊端 
11.2 WebSocket 入门 
11.2.1 WebSocket 背景 
11.2.2 WebSocket 连接建立 
11.2.3 WebSocket 生命周期 
11.2.4 WebSocket 连接关闭 
11.3 Netty WebSocket 协议开发 
11.3.1 WebSocket 服务端功能介绍 
11.3.2 WebSocket 服务端开发 
11.3.3 运行WebSocket 服务端 
11.4 总结 
第12 章私有协议栈开发 
12.1 私有协议介绍 
12.2 Netty 协议栈功能设计 
12.2.1 网络拓扑图 
12.2.2 协议栈功能描述 
12.2.3 通信模型 
12.2.4 消息定义 
12.2.5 Netty 协议支持的字段类型 
12.2.6 Netty 协议的编解码规范 
12.2.7 链路的建立 
12.2.8 链路的关闭 
12.2.9 可靠性设计 
12.2.10 安全性设计 
12.2.11 可扩展性设计 
12.3 Netty 协议栈开发 
12.3.1 数据结构定义 
12.3.2 消息编解码 
12.3.3 握手和安全认证 
12.3.4 心跳检测机制 
12.3.5 断连重连 
12.3.6 客户端代码 
12.3.7 服务端代码 
12.4 运行协议栈 
12.4.1 正常场景 
12.4.2 异常场景:服务端宕机重启 
12.4.3 异常场景:客户端宕机重启 
12.5 总结 
第13 章服务端创建 
13.1 原生NIO 类库的复杂性 
13.2 Netty 服务端创建源码分析 
13.2.1 Netty 服务端创建时序图 
13.2.2 Netty 服务端创建源码分析 
13.3 客户端接入源码分析 
13.4 总结 
第14 章客户端创建 
14.1 Netty 客户端创建流程分析 
14.2.1 Netty 客户端创建时序图 
14.2.2 Netty 客户端创建流程分析 
14.2 Netty 客户端创建源码分析 
14.2.1 客户端连接辅助类Bootstrap 
14.2.2 客户端连接操作 
14.2.3 异步连接结果通知 
14.2.4 客户端连接超时机制 
14.3 总结 

参考:

书上的示例代码

https://gitee.com/2016shuai/phei-netty

猜你喜欢

转载自blog.csdn.net/l1394049664/article/details/82285331