《Java 2网络协议内幕》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)Al Williams著;何雄等译
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2002
  • ISBN:7508411528
  • 页数:437 页
图书介绍:本书涵盖了Java程序设计中各个层次的网络编程,是使用Java进行网络编程的优秀的指导书。本书的主要内容有:Internet基础、基础套接字、Telnet、FTP和TFTP、SMTP、POP3、NNTP、HTTP、HTTPS等协议的网络程序设计。内容系统而且全面,概念清晰,易于理解,并且每章都给出了大量的实例及分析。可从中国水利水电出版社网站(www.waterpub.com.cn)上下载完整的程序清单。本书适合于有一定Java基础的程序员和高级程序员作为编程指南,也适合对网络协议感兴趣的程序员阅读。

第1章 Internet基础 1

1.1 深入介绍 1

1.1.1 Java怎么样 1

1.1.2 协议包 2

1.1.3 Internet地址 2

1.1.4 DNS:Internet上的电话簿 3

1.1.5 URL,URI,URN 4

1.1.6 层(Layers) 5

1.1.7 基本协议 6

1.1.8 网络硬件 7

1.1.9 协议的学习 8

1.2 快速解决方案 9

1.2.1 确定你的真IP地址 9

1.2.2 使用动态重定向 9

1.2.3 确定IP地址的类型 10

1.2.4 选择端口号 10

1.2.5 使用Ping和其他工具 11

1.2.7 查找RFC 13

1.2.6 自己动手练习一个协议 13

1.2.8 为代理服务器设置Java 15

第2章 Java网络编程 16

2.1 深入介绍 16

2.1.1 套接字编程的实质 16

2.1.2 I/O(输入/输出)流 21

2.1.3 高级套接字方法 26

2.1.4 线程 29

2.2.2 向服务器端打开TCP套接字 32

2.2.1 解析主机名 32

2.2 快速解决方案 32

2.2.3 打开服务器端套接字 33

2.2.4 创建UDP套接字 33

2.2.5 向TCP套接字发送数据 34

2.2.6 从TCP套接字接收数据 34

2.2.7 压缩套接字数据 35

2.2.8 设定套接字的最长读时间 36

2.2.13 设定缓冲区的大小 37

2.2.12 设定保持活动选项 37

2.2.11 设定套接字的延时行为 37

2.2.9 设定服务器端最长接收时间 37

2.2.10 设定SoLinger 37

2.2.14 处理套接字异常 38

2.2.15 创建多线程服务器程序 38

2.2.16 自动处理多线程服务器 39

2.2.17 使用线程池为客户端程序服务 41

3.1 深入介绍 45

3.1.1 Echo协议 45

第3章 简单协议 45

3.1.2 Finger 49

3.1.3 Whois协议 57

3.1.4 基本时间协议(Basic Time) 59

3.2 快速解决方案 65

3.2.1 使用Echo协议 65

3.2.2 编写TCP Echo服务程序 65

3.2.3 编写UDP Echo服务程序 65

3.2.4 合并TCP和UDP服务程序 66

3.2.5 使用Finger服务 66

3.2.6 编写Finger服务器 67

3.2.7 创建一个简单的代理 68

3.2.8 使用Whois 69

3.2.9 查询对人可读格式的时间 69

3.2.10 对NIST时间串进行解码 69

3.2.11 查询机器可读格式中的时间 70

3.2.12 编写时间服务程序 71

3.2.13 选用Unicode作字节映射 72

第4章 TFTP协议 78

4.1 深入介绍 78

4.1.1 关于TFTP协议 79

4.1.2 Play by Play 81

4.1.3 TFTP客户端应用 81

4.1.4 TFTP服务器端应用 85

4.1.5 更简单的一种方法 88

4.1.6 TFTP与FTP的对比 89

4.2 快速解决方案 90

4.2.1 探寻TFTP的规范 90

4.2.2 创建一个TFTP类 90

4.2.5 使用GNU的TFTP类 100

4.2.3 创建一个TFTP的客户端应用程序 100

4.2.4 创建一个TFTP的服务器端应用程序 100

4.2.6 配置GNU的TFTP服务器 101

第5章 Telnet协议 102

5.1 深入介绍 102

5.1.1 Telnet回顾 103

5.1.2 NVT回顾 103

5.1.3 特殊命令 104

5.1.4 要协商的地方 105

5.1.5 Telnet实践 108

5.1.6 一个基本的Java客户端 109

5.1.7 创建一个Telnet服务器端应用 114

5.1.8 定制服务器端 120

5.1.9 Telnet开放源码 121

5.2 快速解决方案 123

5.2.1 探寻Telnet协议规范 123

5.2.5 防止循环 124

5.2.4 协商Telnet的选项 124

5.2.3 模拟NVT 124

5.2.2 发送Telnet命令同时发送数据 124

5.2.6 处理子选项 125

5.2.7 从基类创建一个Telnet客户端 125

5.2.8 从基类创建一个Telnet服务器端 126

5.2.9 使用TelnetWrapper 127

第6章 FTP协议 128

6.1 深入介绍 128

6.1.1 基础 128

6.1.2 传输 129

6.1.3 响应 130

6.1.4 登录 132

6.1.5 创建连接 132

6.1.6 FTP命令细节 134

6.1.7 考虑客户端 137

6.1.8 考虑服务器端 138

6.2 快速解决方案 146

6.2.1 查找FTP规范 146

6.2.2 连接到FTP服务器 146

6.2.4 管理当前目录 147

6.2.3 解释FTP的响应 147

6.2.5 读文件目录 148

6.2.6 传输文件 151

6.2.7 选择主动方式还是被动方式 152

6.2.8 使用FTP的开放源码 153

第7章 SMTP协议 155

7.1 深入介绍 155

7.1.1 验证 157

7.1.2 超时、多行和透明性 157

7.1.3 扩展的SMTP 158

7.1.4 题头 158

7.1.5 编码 159

7.1.6 实现 160

7.1.7 使用SMTP 174

7.1.8 附件 176

7.2.1 探寻SMTP规范 177

7.2.2 连接一个SMTP服务器 177

7.2 快速解决方案 177

7.1.9 SMTP的问题(Twists) 177

7.2.3 通过SMTP发送邮件 178

7.2.4 解释响应码 178

7.2.5 形成地址 179

7.2.6 选择题头 180

7.2.7 格式化消息文本 180

7.2.8 使用可引用可打印编码对消息文本编码 181

7.2.9 使用Base 64编码对消息文本编码 182

7.2.10 格式化多部分消息 184

7.2.11 使用MailMessage对象 185

7.2.12 使用SMTP对象 186

第8章 POP3协议 187

8.1 深入介绍 187

8.1.1 POP3协议 188

8.1.2 一个POP3类 190

8.1.3 一个常用列表管理器 190

8.1.4 代码 191

8.1.5 作用 197

8.1.6 进一步开发 197

8.1.8 使用JavaMail 198

8.1.7 关于IMAP 198

8.2 快速解决方案 199

8.2.1 探寻POP3协议规范 199

8.2.2 探寻IMAP规范 199

8.2.3 解释POP3服务器的响应 199

8.2.4 使用POP3授权 199

8.2.5 了解邮箱状态 200

8.2.6 确定消息细节 200

8.2.9 创建一个POP3客户端类 201

8.2.8 删除一个消息 201

8.2.7 读一个邮件消息 201

8.2.10 使用com.jthomas.pop包 205

8.2.11 安装JavaMail 206

8.2.12 使用JavaMail Message对象工作 206

8.2.13 使用JavaMail Session对象工作 207

8.2.14 在POP邮件服务器中使用JavaMail 207

8.2.15 在IMAP邮件服务器中使用JavaMail 209

9.1 深入介绍 211

9.1.1 关于News 211

第9章 NNTP协议 211

9.1.2 NNTP内幕 212

9.1.3 封装NNTP 215

9.1.4 Web上的NNTP 221

9.2 快速解决方案 222

9.2.1 探寻NNTP规范 222

9.2.2 连接一个News服务器 222

9.2.4 列出所有的组 223

9.2.5 寻找新组 223

9.2.3 选择一个组 223

9.2.6 读取文章 224

9.2.7 改变当前的文章 224

9.2.8 查找新文章 225

9.2.9 投递文章 225

9.2.10 使用NewsClient类 225

9.2.11 显示Web上的文章 226

9.2.12 读Web上的文章 228

9.2.13 通过Web投递文章 230

10.1.1 HTTP协议 232

第10章 HTTP客户端 232

10.1 深入介绍 232

10.1.2 状态码 235

10.1.3 常用标题 236

10.1.4 表单 237

10.1.5 Cookies 239

10.1.6 Applets(小程序) 248

10.2.3 创建1.0版的请求 257

10.2.2 创建简单请求 257

10.2.1 探寻HTTP协议规范 257

10.2 快速解决方案 257

10.2.4 创建1.1版的请求 258

10.2.5 读状态码 259

10.2.6 通过HTML向服务器发送表单数据 259

10.2.7 使用Java发送表单数据到服务器 260

10.2.8 URL数据编码 260

10.2.9 自动提交表单 261

10.2.10 发送和接收Cookies 262

10.2.12 检查合法链接 263

10.2.11 打开浏览器到浏览器的通信 263

11.1 深入介绍 268

11.1.1 URL内幕 268

第11章 协议操作者 268

11.1.2 URLConnection内幕 269

11.1.3 URLConnection子类 271

11.1.4 协议和内容操作者 272

11.2 快速解决方案 275

11.2.1 获取URL的数据 275

11.2.3 设置请求标题 276

11.2.2 获取URL的内容 276

11.2.4 读取响应标题 277

11.2.5 使用特定的HTTP连接 277

11.2.6 传送数据到服务器 277

11.2.7 打开一个JAR文件作为URL 278

11.2.8 创建一个客户协议操作者 279

11.2.9 安装一个客户协议操作者 280

11.2.10 创建一个客户内容操作者 281

11.2.11 安装一个客户内容操作者 282

第12章 解释HTML 284

12.1 深入介绍 284

12.1.1 显示 284

12.1.2 处理HTML 286

12.1.3 实现Ad Hoc 287

12.1.4 Ad Hoc细节 289

12.1.5 使用AHParse 290

12.1.7 属性解析 293

12.1.6 处理图像 293

12.1.8 改进可用性 294

12.1.9 再次访问Swing 296

12.2 快速解决方案 298

12.2.1 通过Swing使用HTML 298

12.2.2 使用JEditorPane显示HTML 298

12.2.3 通过超链接显示HTML 299

12.2.4 使用AHParse 299

12.2.5 通过Swing解析标签 299

12.2.7 通过Swing解析文本 301

12.2.6 通过Swing解析属性 301

第13章 HTML服务 302

13.1 深入介绍 302

13.1.1 关于JSP 302

13.1.2 定制Tandem中的服务 308

13.1.3 通过代理创建的Web 317

13.1.4 拍卖服务器 324

13.2.1 使用JSP进行服务器端编程 337

13.2.2 从JSP中读输出 337

13.2 快速解决方案 337

13.2.3 在JSP中向浏览器写数据 338

13.2.4 使用JSP页的定向功能 338

13.2.5 写一个简单的Web服务器程序 338

13.2.6 配置HttpServer(Http服务器) 339

13.2.7 定制HttpServer 339

13.2.8 写一个代理服务器 342

13.2.9 调试一个代理服务器 343

第14章 XML 346

14.1 深入介 346

14.1.1 进入XML 347

14.1.2 XML语 348

14.1.3 有效的 349

14.1.4 文档对象模型(DOM) 351

14.1.5 名字空间 351

14.1.6 Java对XML的支持 352

14.1.7 XML库 354

14.1.8 使用SAX 355

14.1.9 使用DOM 366

14.2.2 在JSP里创建XML 372

14.2 快速解决方案 372

14.2.1 安装Java XML扩展 372

14.2.3 创建一个解析器 374

14.2.4 创建一个验证解析器 374

14.2.5 创建一个理解命名的解析器 374

14.2.6 使用一个SAX解析器 375

14.2.7 使用SAX进行验证 375

14.2.8 在XML文件里创建DOM 376

14.2.9 读属性 376

14.2.10 构造一个DOM 377

14.2.11 编写一个DOM 378

第15章 安全性略谈 382

15.1 深入介绍 382

15.1.1 加密技术回顾 383

15.1.2 Java安全性 385

15.1.3 关于证书 386

15.1.4 隐藏数据 387

15.2.2 创建一个安全套接字 395

15.2.3 与一个安全的Web服务器相连接 395

15.2.1 创建一个安全的套接字工厂 395

15.2 快速解决方案 395

15.2.4 使用Steganography 397

15.2.5 包含证书 398

15.2.6 显示证书 399

15.2.7 导入证书 399

15.2.8 导出证书 399

附录A 一些有用的RFC 400

附录B 端口的分配 430