- 博客(1)
- 资源 (2)
- 收藏
- 关注
原创 工作拾忆 & 一年C++经验小记
那天下车的时候下着雨,拖着一堆行李在车站旁路边屋檐下躲雨,啃着4块钱一个的黄玉米,看着陌生的珠海拱北街道心里冒出些许兴奋,带着一份义无返顾的憧憬似乎自己并没有背着10多万的债务。那天,是为了做一个更牛B的销售。那是2012年2月底,我已经忘了具体的日期。 2007年4月10日,十几个同校的同学早上4点多到深圳南头,一直等到6点多第一趟公交,司机直摇头看着我们提着一大堆蛇皮袋装行李上车,十几份行李
2013-09-20 23:58:16 2018 5
netty权威指南源码
原书附带的源码中所用的API和最新的netty5的API有一些不同,更改后都可以运行。
附带目录的影印完整版pdf文档百度云下载地址:http://pan.baidu.com/s/1qWzHbkC 密码:vbwt
目录:
基础篇走进JavaNIO
第1章Java的I∕O演进之路2
1.1I∕O基础入门3
1.1.1Linux网络I∕O模型简介3
1.1.2I∕O多路复用技术6
1.2Java的I∕O演进8
1.3总结10
第2章NIO入门11
2.1传统的BIO编程11
2.1.1BIO通信模型图12
2.1.2同步阻塞式I∕O创建的TimeServer源码分析13
2.1.3同步阻塞式I∕O创建的TimeClient源码分析16
2.2伪异步I∕O编程18
2.2.1伪异步I∕O模型图19
2.2.2伪异步式I∕O创建的TimeServer源码分析19
2.2.3伪异步I∕O弊端分析21
2.3NIO编程24
2.3.1NIO类库简介24
2.3.2NIO服务端序列图28
2.3.3NIO创建的TimeServer源码分析31
2.3.4NIO客户端序列图36
2.3.5NIO创建的TimeClient源码分析39
2.4AIO编程45
2.4.1AIO创建的TimeServer源码分析46
2.4.2AIO创建的TimeClient源码分析52
2.4.3AIO版本时间服务器运行结果56
2.54种I∕O的对比58
2.5.1概念澄清58
2.5.2不同I∕O模型对比60
2.6选择Netty的理由60
2.6.1不选择Java原生NIO编程的原因61
2.6.2为什么选择Netty62
2.7总结63
入门篇NettyNIO开发指南
第3章Netty入门应用66
3.1Netty开发环境的搭建66
3.1.1下载Netty的软件包67
3.1.2搭建Netty应用工程67
3.2Netty服务端开发68
3.3Netty客户端开发73
3.4运行和调试76
3.4.1服务端和客户端的运行76
3.4.2打包和部署77
3.5总结78
第4章TCP粘包∕拆包问题的解决之道79
4.1TCP粘包∕拆包79
4.1.1TCP粘包∕拆包问题说明80
4.1.2TCP粘包∕拆包发生的原因80
4.1.3粘包问题的解决策略81
4.2未考虑TCP粘包导致功能异常案例82
4.2.1TimeServer的改造82
4.2.2TimeClient的改造83
4.2.3运行结果84
4.3利用LineBasedFrameDecoder解决TCP粘包问题88
4.3.1支持TCP粘包的TimeServer88
4.3.2支持TCP粘包的TimeClient90
4.3.3运行支持TCP粘包的时间服务器程序93
4.3.4LineBasedFrameDecoder和StringDecoder的原理分析98
4.4总结99
第5章分隔符和定长解码器的应用100
5.1DelimiterBasedFrameDecoder应用开发101
5.1.1DelimiterBasedFrameDecoder服务端开发101
5.1.2DelimiterBasedFrameDecoder客户端开发104
5.1.3运行DelimiterBasedFrameDecoder服务端和客户端106
5.2FixedLengthFrameDecoder应用开发108
5.2.1FixedLengthFrameDecoder服务端开发108
5.2.2利用telnet命令行测试EchoServer服务端110
5.3总结111
中级篇Netty编解码开发指南
第6章编解码技术114
6.1Java序列化的缺点115
6.1.1无法跨语言115
6.1.2序列化后的码流太大115
6.1.3序列化性能太低118
6.2业界主流的编解码框架121
6.2.1Google的Protobuf介绍121
6.2.2Facebook的Thrift介绍123
6.2.3JBossMarshalling介绍124
6.3总结125
第7章Java序列化126
7.1NettyJava序列化服务端开发126
7.2Java序列化Netty客户端开发132
7.3运行结果135
7.4总结137
第8章GoogleProtobuf编解码138
8.1Protobuf的入门139
8.1.1Protobuf开发环境搭建139
8.1.2Protobuf编解码开发141
8.1.3运行Protobuf例程143
8.2Netty的Protobuf服务端开发143
8.2.1Protobuf版本的图书订购服务端开发144
8.2.2Protobuf版本的图书订购客户端开发146
8.2.3Protobuf版本的图书订购程序功能测试149
8.3Protobuf的使用注意事项152
8.4总结153
第9章JBossMarshalling编解码154
9.1Marshalling开发环境准备154
9.2Netty的Marshalling服务端开发155
9.3Netty的Marshalling客户端开发158
9.4运行Marshalling客户端和服务端例程160
9.5总结162
高级篇Netty多协议开发和应用
第10章HTTP协议开发应用164
10.1HTTP协议介绍165
10.1.1HTTP协议的URL165
10.1.2HTTP请求消息(HttpRequest)165
10.1.3HTTP响应消息(HttpResponse)168
10.2NettyHTTP服务端入门开发169
10.2.1HTTP服务端例程场景描述170
10.2.2HTTP服务端开发170
10.2.3NettyHTTP文件服务器例程运行结果178
10.3NettyHTTP+XML协议栈开发182
10.3.1开发场景介绍183
10.3.2HTTP+XML协议栈设计186
10.3.3高效的XML绑定框架JiBx187
10.3.4HTTP+XML编解码框架开发195
10.3.5HTTP+XML协议栈测试211
10.3.6小结213
10.4总结214
第11章WebSocket协议开发215
11.1HTTP协议的弊端216
11.2WebSocket入门216
11.2.1WebSocket背景217
11.2.2WebSocket连接建立218
11.2.3WebSocket生命周期219
11.2.4WebSocket连接关闭220
11.3NettyWebSocket协议开发221
11.3.1WebSocket服务端功能介绍221
11.3.2WebSocket服务端开发222
11.3.3运行WebSocket服务端230
11.4总结231
第12章UDP协议开发233
12.1UDP协议简介234
12.2UDP服务端开发235
12.3UDP客户端开发238
12.4运行UDP例程240
12.5总结241
第13章文件传输242
13.1文件的基础知识243
13.1.1文件的概念243
13.1.2文件路径243
13.1.3文件名称244
13.1.4FileChannel简介244
13.2Netty文件传输开发245
13.3运行Netty文件传输服务例程248
13.4总结250
第14章私有协议栈开发251
14.1私有协议介绍251
14.2Netty协议栈功能设计253
14.2.1网络拓扑图253
14.2.2协议栈功能描述254
14.2.3通信模型254
14.2.4消息定义255
14.2.5Netty协议支持的字段类型256
14.2.6Netty协议的编解码规范257
14.2.7链路的建立259
14.2.8链路的关闭260
14.2.9可靠性设计260
14.2.10安全性设计262
14.2.11可扩展性设计262
14.3Netty协议栈开发263
14.3.1数据结构定义263
14.3.2消息编解码267
14.3.3握手和安全认证271
14.3.4心跳检测机制275
14.3.5断连重连278
14.3.6客户端代码279
14.3.7服务端代码281
14.4运行协议栈282
14.4.1正常场景282
14.4.2异常场景:服务端宕机重启283
14.4.3异常场景:客户端宕机重启286
14.5总结286
……
源码分析篇Netty功能介绍和源码分析
架构和行业应用篇Netty高级特性
附录ANetty参数配置表
2015-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人