`

我的新书《微博是这样炼成的:从聊天室到Twitter的实现》上市

阅读更多

  我的新书《微博是这样炼成的:从聊天室到Twitter的实现》己由人民邮电出版社出版,上市发行。先上封面图:

 

 本书特点简介:

     (1)项目驱动
   本书的技术点专注于网络通信、安全加密和项目设计构架3方面。讲解的技术要点有TCP/IP编程、设计模式、UDP编程、P2P通信、通信加密技术、Java NIO技术、JMF视频通信、RMI远程调用、Hessian Web Service、Memcached缓存系统等。这些看似深刻难以理解和掌握的技术要点被通过循序渐进的案例实践,一步一步构建到一个完整的项目中。读者只要跟随本书一路走下来,至少实践完成三个典型项目:仿QQ IM项目(JavaKe)、中国移动CMPP网关项目、仿Twitter项目(JTwitter)。还可对相关行业业务知识进行详细深入的了解。有实践项目,才有深入理解,这才叫作“掌握技术”——本书并不是教你成为“知道分子”的参考书。

   (2)启发式讲解
   做老师的经历让作者明白“老师是没有权力告诉学生答案”的道理的,本书的目的不仅限于告诉读者“可以这样写代码”。而是通过提出需求、分析技术实现、分析缺陷改进、提示原理探究的渐进式构建为讲解路线,充分调动读者实践+思考的极积性。在掌技术要点、完成实践项目的同时,希望读者明白:可以这样写、还可以哪样实现、各有什么优劣点、原理是什么?

   另外,本书中的代码不是仅为“示例”而编写的,从每行代码的注解命名到类与类之间的关系分析,都是经过严谨思考的。“代码就是程序员的小说”,希望读者能注重体会本书的代码质量规范和其中的设计思想。

 

读者对象
   A.如果你还是徘徊在“Hello Word”左右的菜鸟,请慎选。我诚恳的以我的切身体会告诉你­:学习没有捷径,且必然是一个历尽千辛,契而不舍的过程,没有二~三年的坚持是无法入门的;如果你享受这个过程的心态能经受住本书的考验,那么你也肯定会变成一只雄鹰!

  B.如果读者是正在学习Java开发的征战者,对线程、I/O有些粗浅了解;却被各种名词堆砌的WEB(J2EE)技术晃得眼花缭乱,想去掌握其中那些能以不变应万变、根本性原理性的技术“干货”,那么本书就是为你提供的。

  C.如果读者己有多年的Web开发工作经验,却开始渐渐厌烦千篇一律的CRUD操作、编写“优雅、艺术”性代码的机会越来越少、编码就像是在各种现成框架中做填空题一样。本书将为你打开Java技术的另一精彩世界。

 

   嗯,还有封底,朋友的鼓励:)

 
   我的博客将陆续发布书中的项目实例和扩展案例的源码文档.

  本书大纲:

   第1章 JavaKe起步:聊天室的实现 5
1.1 从零开始实现公共聊天室 5
1.1.1 网络基础知识 5
1.1.2 一步一步创建简单服务器 8
1.1.3 服务器读写消息实现 11
1.1.4 群聊服务器实现 20
1.1.5 群聊客户端实现 37
1.2 实现XMPP通信的IM系统 46
1.2.1 初识XMPP 46
1.2.2 交互流程描述 47
1.2.3 XMPP消息格式定义 49
1.2.4 服务器端代码的实现 50
1.2.5 客户端代码的实现 57
1.2.6 缺陷分析 65
1.3 程序结构性问题分析 65
1.3.1 整体结构设计的重要性 65
1.3.2 方法定义时细节的处理 66
1.3.3 高耦合的问题 67
1.4 JavaKe项目需求分析 68
1.4.1 JavaKe需求分析 68
1.4.2 JavaKe客户端的功能 68
1.4.3 JavaKe服务器端的功能 69
1.4.4 JavaKe系统网络结构 69

第2章 JavaKe:典型IM系统的实现 70
2.1 大话通信协议 70
2.1.1 理解通信协议的概念 70
2.1.2 定义文件传输协议并实现 71
2.1.3 实现文本/文件传送服务器 73
2.1.4 实现文本/文件传送客户端 76
2.2 JavaKe通信协议分析 78
2.2.1 通信消息流程 78
2.2.2 通信数据格式协议 81
2.2.3 具体消息体结构定义 82
2.3 关键技术点分析 85
2.3.1 打包解包的概念分析 85
2.3.2 重构打包解包代码 86
2.3.3 应用监听器模型分离界面和通信层 91
2.3.4 “事件监听”模型应用的实现 95
2.3.5 UI界面与数据模型分离 99
2.3.6 定制UI组件示例 107
2.4 JavaKe系统对象分析 113
2.4.1 对象分析思路 113
2.4.2 用户/分组类定义 116
2.4.3 系统消息对象分析 118
2.4.4 工具类分析 119
2.5 JavaKe服务器端的实现 129
2.5.1 服务器端分析 129
2.5.2 服务器创建模块的实现 130
2.5.3 服务器通信模块的实现 131
2.5.4 服务器管理模块的实现 135
2.5.5 再谈分析:编程与软件开发的区别 138
2.6 JavaKe客户端的实现 139
2.6.1 客户端界面分析 139
2.6.2 客户端流程分析 141
2.6.3 客户通信模块类分析 142
2.6.4 客户UI界面模块类分析 146
2.7 JavaKe待完成任务分析 157
2.7.1 功能性完善的问题提出 157
2.7.2 构架性完善的问题提出 158

第3章 JavaKe扩展:连接移动CMPP网关 159
3.1 应用软件与移动通信网络的关系 159
3.2 移动增值业务解析 161
3.2.1 移动增值业务类型说明 161
3.2.2 何谓SP服务商 162
3.2.3 中国移动MISC平台介绍 162
3.3 CMPP短信业务理解 164
3.3.1 短信的基本属性 164
3.3.2 移动网络中的短信流程 165
3.3.3 SP短信服务的基本概念 166
3.3.4 SP指令匹配理解 167
3.4 中国移动CMPP通信解析 167
3.4.1 运营商短信协议介绍 167
3.4.2 客户端与服务器模型 168
3.4.3 异步消息发送模式 168
3.4.4 长连接与短连接 169
3.4.5 CMPP消息类型 169
3.4.6 CMPP消息的结构 170
3.4.7 CMPP部分术语解释 171
3.5 CMPP短信网关的实现 172
3.5.1 CMPP_CONNECT及其应答包结构分析 172
3.5.2 CMPP_CONNECT和其应答包的定义 174
3.5.3 CMPP应答包打包、解包工具类编写 175
3.5.4 打包过程的说明 179
3.5.5 解包的过程说明 179
3.5.6 字符串数据的读写理解 180
3.5.7 ISMG服务器端实现 181
3.5.8 MD5摘要计算原理及应用 184
3.5.9 SP端网关实现 187
3.5.10 网关程序调试技巧 189
3.5.11 网关关键技术点分析 192
3.6 应用手机终端收发短信 195
3.6.1 AT命令简介及应用 195
3.6.2 使用smsLib发送短信 198

第4章 通信高级技术分析 203
4.1 通信的安全保证 203
4.1.1 网络为什么不安全 203
4.1.2 用Jpcap窃取数据包 206
4.1.3 对称加密与消息摘要 216
4.1.4 非对称加密机制 222
4.1.5 SSL安全通道通信示例 232
4.2 JavaKe远程控制模块实现 241
4.2.1 远程控制原理 241
4.2.2 远程控制关键技术解析 243
4.2.3 被控制端实现 245
4.2.4 控制端实现 250
4.3 基于UDP通信的设计 254
4.3.1 UDP通信示例 254
4.3.2 UDP可靠传输的控制 258
4.3.3 UDP组播消息 268
4.3.4 内网穿透实现分析 272
4.4 JavaNIO通信示例 282
4.4.1 NIO基本概念 282
4.4.2 NIO简单聊天室 291
4.4.3 NIO文件操作 297
4.5 Mina通信框架应用 299
4.5.1 关于Mina框架 299
4.5.2 Mina简单入门 299
4.5.3 Mina的体系结构总结 305
4.5.4 使用Mina直接传送对象 307
4.5.5 扩展学习 308
4.6 应用Memcached实现缓存系统 309
4.6.1 初识Memcached 309
4.6.2 缓存系统的网络构架 312
4.6.3 为JavaKe应用缓存系统 318
4.7 视频通信实现 321
4.7.1 JMF概述 321
4.7.2 JMF使用RTP协议 328
4.7.3 FMJ视频聊天室的实现 334
4.8 远程调用技术:RMI vs Hessian 354
4.8.1 分布式计算的基本理解 354
4.8.2 分布式体系结构的模型 356
4.8.3 RMI应用示例 357
4.8.4 定制RMI端口 364
4.8.5 简洁的Hessian 366

第5章 JTwitter系统实现分析 371
5.1 JTwitter是什么? 371
5.1.1 概念分析 371
5.1.2 JTwitter的核心功能需求 373
5.2 客户端程序功能分析 374
5.2.1 登录/注册功能 374
5.2.2 主界面功能 377
5.3 客户端和服务器端通信接口设计 380
5.3.1 通信接口设计 380
5.3.2 通信机制设计 385
5.4 数据库结构分析 386
5.5 Web服务端功能分析 387
5.6 扩展构架分析 388

 

 

 

 

  • 大小: 48.7 KB
  • 大小: 112.9 KB
分享到:
评论
64 楼 什么世道 2013-07-11  
发现了一个小BUG,伟大的编者居然把名字打错了     
63 楼 刘凯宁 2013-07-11  
:D   
62 楼 wgsddfe 2011-10-19  
您好,您的这本书得随书源码哪里有下载的啊!
61 楼 skyHorse2011 2011-10-01  
楼主,您的书我也在当当买了本。毕业设计就打算做类似QQ的聊天软件(包括文件传送\远程协助\视频聊天\语音聊天\屏幕截图),您的书很具有参考价值。
60 楼 wuanjunbaiqi 2011-07-31  
胡/总我想看看啊
59 楼 Cloudlee 2011-05-01  
Cloudlee 写道
老师,网上发的那个服务器端,web的微博貌似代码不全啊,我导入后运行注册了就报错,少包。java.lang.ClassNotFoundException: cn.mbs.servlets.RegSVL
您能不能发个完整的可以像微博一样正常在机器上运行的哒?


我的邮箱是:stekelenburg@163.com
58 楼 Cloudlee 2011-05-01  
老师,网上发的那个服务器端,web的微博貌似代码不全啊,我导入后运行注册了就报错,少包。java.lang.ClassNotFoundException: cn.mbs.servlets.RegSVL
您能不能发个完整的可以像微博一样正常在机器上运行的哒?
57 楼 Feegle7 2011-03-16  
56 楼 javafound 2011-03-04  
lvshuding 写道
去年年前,将近一个半月都周末去书城看您的这本书,看后觉得自己提高很多,年后回想书中的知识,觉得很模糊、很生疏,现在把书买回来了,周末有空在读,有不解的请楼主指教!

  嗯,书非读不能买,谢谢捧场啊
55 楼 lvshuding 2011-03-03  
去年年前,将近一个半月都周末去书城看您的这本书,看后觉得自己提高很多,年后回想书中的知识,觉得很模糊、很生疏,现在把书买回来了,周末有空在读,有不解的请楼主指教!
54 楼 xiaoyu211940 2011-02-22  
看了下 介绍不错 不知道里面内容怎么样  国内的书籍买过几本
开篇什么的讲的很厉害什么的 后面都不知道是些什么东西
好多问题是描述到了 就没什么好的解决方案等等
53 楼 skzr.org 2010-12-30  
此书列入采购计划了,刚刚到当当上购买了,等够200元的书,就入手了
52 楼 skzr.org 2010-12-30  
确实不错,邪恶的说:神啊,赐给我pdf版本的吧
51 楼 javafound 2010-12-29  
wangrexin 写道
昨天买的书到货了,大致翻看了一下,感觉还行,有问题再请教楼主

多谢捧场,不足之处望多指教 
50 楼 wangrexin 2010-12-29  
昨天买的书到货了,大致翻看了一下,感觉还行,有问题再请教楼主
49 楼 ejacky 2010-12-17  
有机会要拜读一下 ,喜欢用TWITTER
48 楼 qqliteng 2010-12-12  
胡//总威武!!
47 楼 小罗啦啦 2010-11-28  
( ⊙o⊙ )哇塞,啥时候我水平提升一点了就去拜读你的著作去,然后写一本《著作是怎样炼成的》~O(∩_∩)O哈哈~为了出版这本书你一定经历了千辛万苦吧?O(∩_∩)O~向你学习~
46 楼 langyu 2010-11-19  
很容易联想起李*的书目
45 楼 itlangqun 2010-10-25  
好久没念书啦。

相关推荐

    yolo算法-电线杆数据集-1493张图像带标签-.zip

    yolo算法-电线杆数据集-1493张图像带标签-.zip;yolo算法-电线杆数据集-1493张图像带标签-.zip;yolo算法-电线杆数据集-1493张图像带标签-.zip

    yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip

    yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip

    pillow_avif_plugin-1.2.1-cp37-cp37m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    【地震】基于matlab时域有限差分FDTD模拟地震盾构【含Matlab源码 9186期】.mp4

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    中国高质量发展指标体系-最新发布.zip

    中国高质量发展指标体系-最新发布.zip

    【java毕业设计】班级同学录管理系统源码(ssm+mysql+说明文档).zip

    环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    【java毕业设计】基于Java的汽车销售系统源码(ssm+mysql+说明文档).zip

    环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    yolo算法-动物检测数据集-3948张图像带标签.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    pandas-1.3.5-pp38-pypy38_pp73-win_amd64.whl.rar

    PartSegCore_compiled_backend-0.12.0a0-cp36-cp36m-win_amd64.whl.rar

    planar-0.4-cp39-cp39-win_amd64.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    中国企业统计年鉴全集(1990-2020,除1997年).zip

    中国企业统计年鉴全集(1990-2020,除1997年).zip

    oursql-0.9.4-cp34-none-win32.whl.rar

    PartSegCore_compiled_backend-0.12.0a0-cp36-cp36m-win_amd64.whl.rar

    yolo算法-交易是项目数据集-760张图像带标签-.zip

    yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值

    【java毕业设计】中国古诗词学习平台源码(ssm+mysql+说明文档).zip

    环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    汽车功放电路设计PCB案例

    内含PCB设计案例,可直接打样出成果

    Pillow_SIMD-6.0.0.post0-cp27-cp27m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    polylearn-0.1.dev0-cp27-cp27m-win32.whl.rar

    python whl离线安装包 pip安装失败可以尝试使用whl离线安装包安装 第一步 下载whl文件,注意需要与python版本配套 python版本号、32位64位、arm或amd64均有区别 第二步 使用pip install XXXXX.whl 命令安装,如果whl路径不在cmd窗口当前目录下,需要带上路径 WHL文件是以Wheel格式保存的Python安装包, Wheel是Python发行版的标准内置包格式。 在本质上是一个压缩包,WHL文件中包含了Python安装的py文件和元数据,以及经过编译的pyd文件, 这样就使得它可以在不具备编译环境的条件下,安装适合自己python版本的库文件。 如果要查看WHL文件的内容,可以把.whl后缀名改成.zip,使用解压软件(如WinRAR、WinZIP)解压打开即可查看。 为什么会用到whl文件来安装python库文件呢? 在python的使用过程中,我们免不了要经常通过pip来安装自己所需要的包, 大部分的包基本都能正常安装,但是总会遇到有那么一些包因为各种各样的问题导致安装不了的。 这时我们就可以通过尝试去Python安装包大全中(whl包下载)下载whl包来安装解决问题。

    中国各省市进出口面板数据集.zip

    中国各省市进出口面板数据集.zip

    【java毕业设计】大学生社团管理系统源码(ssm+mysql+说明文档).zip

    环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上 服务器:tomcat7及以上

    appium test for self

    appium test for self 1. env create 2.coding

Global site tag (gtag.js) - Google Analytics