![](https://img-blog.csdnimg.cn/img_convert/cefe098ab398c7c39ff5a7e465b63f4d.png)
[TOC]
## 一、课程介绍
学习本课程,你将收获:
- 轻松理解Socket编程中的核心概念及应用场景;
- 快速而整体掌握Socket中的在项目中的实际应用案例;
- 解读并通过编码实现交通部905.4-2014数据交换协议核心逻辑;
- 学习如何设计并实现一套TCP协议;
- 从NIO到Netty的实战入门。
你好,我是子涵,大学主修通信工程,互联网公司工作近8年,现任上市公司软件技术架构师一职。经过多年的摸爬滚打,深深的体会到学习编程的最好方式就是通过项目历练,才能更好的“打怪升级”。
子涵认为,作为一个IT人,对技术的关注点除了从SSH、SSM等基础框架的驾驭,还应更多的落脚在多线程、并发处理、NIO及Socket技术上,因为这些技术是开发Java高性能服务器必须要掌握的,而且一些第三方的优秀框架往往也离不开这些技术。
### 实战案例
这个技术小册,我们选取了一个用于出租车行业数据收集标准——**905.4-2014**协议。它是交通运输部公路科学研究院起草定制的一个协议标准,也是基于TCP之上的一个应用层传输协议。
### 课程特点
你想阅读本案例中存在的故事吗?为了让大家收获满满,也为了让大家轻松愉快的学习,在本次的实践案例中,子涵先生用代码讲述了一个工人阶级家庭在大社会的车轮下,努力拼搏、可歌可泣故事。
!](images/screenshot_1666707987158.png)
### 章节介绍
- 第1章,先从整体一下我们可以从案例中学到什么,以及在案例中的用到了哪些技术。
- 第2章,介绍在Socket编程过程中一些基础知识,让大家建立起对这块知识内容的一个整体轮廓;
- 第3章,结合905.4-2014协议的基本内容,动手实现NIO长连接服务端的实现,以及协议内容的设计和实现思路;
- 第4章,实现长连接客户端,以及采用多线程技术进行系统性能测试;
- 第5章,介绍Netty相关基础知识,并使用Netty实现长连接服务端的编码;
- 第6章,同步结果可视化,做好系统、业务数据监控;
- 第7章,提供付费用户的售后服务,做好长期维护。
### 适用人群
- 具有一定的Java开发基础;
- 学习Java开发领域Spring框架之外的东西;
- 想快速通过实战项目提升个人能力的同学。
- 想通过实战入门NIO、Netty。
## 二、为什么要写这么一个小册?
首先基于Netty实现socket数据的同步,在Java开发领域中,这样的业务场景是相对比较冷门的。刚接触这样的项目的时候,虽然在网上也能找到一些材料,但这些材料要么偏重于理论知识的讲解,要么只是实战的“只言片语”,而且业务相对匹配度不高,因此很难找到高质量、系统的实战文档。
我已经经历了摸着石头过河的这个阶段,我深知这个过程如果没有相关的经验会非常坎坷,往往就是走错了方向到最后才醒悟,甚至会严重打击自信心。因此我产生一个念头,我要把这块协议的设计思想、协议的实现框架要做一次整理。我相信在未来的某个时刻,能对某些有缘的小伙伴有所帮助。
## 三、为什么要付费?
这个小册虽然是我本人整理的第一个技术小册,但倾注了个人较大的精力。从文档的编写、协议的解读、代码的编写,都是为了尽力让读者阅读起来更加顺畅。也许你会注意到,你正在看的这篇文档是看云上排版最“**美丽**”的文档。
另外,我相信这个小册是可以帮助你快速构建一个可以运行的Netty数据解析服务的,如果你正好面临的也是相似的业务场景,请告诉你的老板,我相信你的老板一定会**欣喜若狂**的。
>[danger] 时间就是金钱。在企业生存法则中,时间更是大把的金钱。
## 四、结束语
1. 多思考,多问为什么,尤其一些重要概念,不能人云亦云,得先说服自己,再说服别人;
2. 网络编程是中高程序员绕不过的坎,与其把难的留到最后,不妨试试让子涵先带你入门。
> 作者:子涵仙人 个人博客:https://blog.csdn.net/l714417743
> 关注微信公众号:码山有道
![](https://img.kancloud.cn/6d/50/6d50ee0f79d7a63b0dbdce3a0b723ea5_800x500.png)
![](https://img.kancloud.cn/6d/dc/6ddc8e2bdc86cc6d0b01d386d4449e2c_1710x624.png)
- 第一章 开篇寄语
- 1-1 技术选型要点
- 1-2 认识905.4王国的交流规范
- 1-3 联系作者
- 第二章 Socket编程的基础知识
- 2-1 Socket家族的基石
- 2-2 byte数组基础
- 2-3 缓冲区基础
- 2-4 NIO Socket通讯的工作原理
- 第三章 905.4规范解读
- 3-1 基于通道选择器的Socket长连接及消息读写框架
- 3-2 严格的信件收发员
- 3-3 负责消息处理的一家子
- 3-4 负责认证的大儿子(AuthWorker)
- 3-5 哑巴老二(PingWoker)
- 3-6 勤奋的定位汇报员老三(LocationReportWorker)
- 3-7 精明的老四(BusinessReportWorker)
- 3-8 数据检察官——CRC16-CCITT校验
- 3-11 数据的加密官
- 3-12 头尾标识转义
- 第四章 测试方法
- 4-1 测试数据样例
- 4-2 客户端链路保持功能实现
- 4-3 使用Socket短连接进行功能测试
- 4-4 NIO服务端性能分析
- 4-5 http测试方法(推荐)
- 第五章 从NIO到netty
- 5-1 编程进阶——Netty核心基础
- 5-2 Netty使用常见问题
- 5-3 使用Netty重写Server端
- 5-4 Netty之链路管理
- 5-5 netty堆外内存泄漏如何应对?
- 第六章 统计与监控
- 6-1 Grafana监控面板
- 第七章 售后服务
- 7-1 勘误与优化
- 7-2 获取源码