首页>参考读物>计算机科学与技术>软件与程序设计

Java网络编程与分布式计算
作者 : (澳)David Reilly,Michael Reilly
译者 : 沈凤 等
出版日期 : 2003-03-01
ISBN : 7-111-11578-3
定价 : 38.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 332
开本 : 16开
原书名 : Java Network Programming and Distributed Computing
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书清晰地介绍了联网的基本原理,在进行网络编程时需要掌握的主要概念,以及在联网时可能遇到的问题和Java的解决方案。同时通过实例来介绍如何运用网络编程技术在Java平台上编写应用程序。本书不仅适合于网络编程的初学者,而且还适合于有一定网络编程经验的程序员。Java网络编程与分布式计算不管你是需要牢固掌握网络编程原理的Java爱好者,还是需要把自己现有的编程技巧应用于Java的网络程序员,本书都将是你的良师益友。在本书中,你不仅可以了解到联网技术中的一些基本概念,而且还可以学习一些实际的应用程序,这些程序运用了成为高效Java网络程序员必须掌握的技巧。同时,作为联网API的进阶指南,本书还可以用做内容全面、范例丰富的参考书。
  通过对下列内容的深入介绍,你将深入掌握Java API: 
  Internet和TCP/IP的体系结构
  Java的输入/输出系统
  怎样使用UDP和TCP协议编写客户和服务器
  多线程应用程序的优点
  怎样实现网络协议,并研究客户/服务器实现范例
  HTTP以及怎样为Web编写服务器端Java应用程序
  RMI和CORBA等分布式计算技术
  怎样使用功能强大的JavaMail API访问电子邮件
  你可以从本书的网站(http://www.davidreilly.com/jnpbook)下载源代码、关于Java网络编程的常见问题解答(FAQ),并且还可以获得联网资源的有用链接。

图书前言

欢迎阅读本书。本书的目标是介绍和解释联网技术的基本概念,并讨论Java网络编程实践技巧。
本书将帮助读者提高网络编程的速度,并帮助读者运用在软件开发中所学的技巧。如果你已经拥有另一种语言的某些联网经验,而且想把你现有的技巧运用到Java中,那么你将发现本书是一本速成指南,而且是联网技术API的全面的参考书。然而,它并不要求你是联网方面的专家,因为第1~4章给出了对联网原理、Java以及Java联网API最基本要素的简明介绍。后面的章节会用Sun公司提供的作为参考的补充文档的讨论,来更详细地介绍Java API。
主要内容
在本书中读者将学会怎样运用网络编程技术来在Java平台上编写应用程序。Java API提供了在Internet上通信的很多方法,包括从发送数据包和数据流到实现HTTP等高层应用协议,以及分布式计算机制。
本书主要内容包括:
Internet的工作方式、体系结构和TCP/IP协议栈。
Java程序设计语言,包含对异常处理等最新技术的介绍。
Java的输入/输出系统及其工作方式。
怎样使用UDP(User Datagram Protocol,用户数据报协议)和TCP(Transport Control Protocol,传输控制协议)编写客户和服务器。
使网络应用程序可以并发执行多个任务的多线程应用程序的优势。
怎样实现网络协议,包括实现客户/服务器实例。
HTTP(HyperText Transfer Protocol,超文本传输协议),以及怎样通过Java访问万维网。
WWW编写服务器端的Java应用程序。
包括RMI(远程方法调用)和CORBA的分布式计算技术。
怎样用扩展的JavaMail API访问E-mail。
所需背景
要最大限度地利用本书,就要适当地熟悉Java编程。你需要能够编译并运行Java应用程序,并理解一些基本概念,像类、对象以及Java API。不过,你不必是了解本书所涵盖的I/O流和多线程等高级话题的专家。本书的所有范例使用的都是代码程序,所以不需要有GUI方面的经验。
你还必须安装Java SDK,可以从Sun公司的网站(http:// java. sun. com/j2se/)免费获得。毫无疑问,Java程序员可以使用SDK,但是请注意本书中的某些范例将需要JDK1.1,此外,更高级的编程使用servlet、RMI和CORBA、JavaMail将需要Java 2。
还需要一些其他的软件,用于Java编程的大多数工具可以通过WWW免费下载。第2章概述了Java开发工具,但是读者也可以使用自己现有的代码编辑器。当范例重点涉及使用其他Sun公司软件时,书中会有提示。
相关网站
本书的Web站点包含了可下载的示例代码,以及关于Java联网技术的常见问题解答(FAQ),到联网技术资源的链接和关于本书的其他信息。可以通过下面的网址访问这个站点:
http:// www. davidreilly. com/jnpbook/。
联系作者
我们欢迎读者的反馈,读者可以对特定章节进行评注,或者对整本书进行评价。我们特别欢迎关于主题是否已表达清楚且足够详尽的读者来信。我们并不仅仅接受表扬,我们还很重视真诚的批评(也包括对新的联网技术论题的建议)。
与我们直接联系吧。尽管我们不能保证每个都回复,但是我们将尽力对你的询问作出反应。请通过e-mail:jnpbook@davidreilly. com发送问题和意见。

David Reilly和Michael Reilly
2001年9月

作者简介

(澳)David Reilly,Michael Reilly:暂无简介

译者简介

沈凤 等:暂无简介

图书目录

第1章  联网原理 1
1.1  什么是网络 1
1.2  网络如何通信 2
1.2.1  编址 2
1.2.2  使用包的数据传输 3
1.3  层间通信 3
1.3.1  第一层—物理层 4
1.3.2  第二层—数据链路层 5
1.3.3  第三层—网络层 5
1.3.4  第四层—传输层 5
1.3.5  第五层—会话层 5
1.3.6  第六层—表示层 5
1.3.7  第七层—应用层 5
1.4  分层的优势 5
1.5  Internet体系结构 6
1.6  Internet应用协议 12
1.6.1  Telnet 12
1.6.2  FTP 12
1.6.3  POP3 12
1.6.4  IMAP 13
1.6.5  SMTP 13
1.6.6  HTTP 13
1.6.7  Finger 13
1.6.8  NNTP 13
1.6.9  WHOIS 13
1.7  TCP/IP协议簇层 13
1.8  安全问题:防火墙与代理服务器 14
1.8.1  防火墙 15
1.8.2  代理服务器 16
1.8.3  开发者的防火墙 16
1.9  小结 16
第2章  Java概述 19
2.1  Java是什么 19
2.2  Java程序设计语言 19
2.2.1  Java的历史和起源 19
2.2.2  Java语言的特性 20
2.3  Java平台 23
2.3.1  Java虚拟机 24
2.3.2  Java运行时环境 24
2.4  Java应用程序接口 25
2.5  考虑Java联网问题 26
2.6  Java网络编程应用 27
2.6.1  网络客户 27
2.6.2  游戏 28
2.6.3  软件代理 28
2.6.4  Web应用 29
2.6.5  分布式系统 30
2.7  Java语言问题 30
2.8  系统属性 34
2.8.1  从命令行传递系统属性 34
2.8.2  编程指定新的系统属性 35
2.9  开发工具 35
2.9.1  集成开发环境 35
2.9.2  Java系统开发包 36
2.10  小结 37
第3章  Internet寻址 39
3.1  局域网地址 39
3.2  IP地址 39
3.2.1  IP地址的结构 40
3.2.2  获取IP地址 41
3.2.3  特殊IP地址 41
3.3  除IP地址以外:域名系统 42
3.3.1  域名是什么 42
3.3.2  域名系统的工作方式 42
3.3.3  域名解析 43
3.4  用Java进行Internet寻址 44
3.4.1  java. net. InetAddress类 44
3.4.2  用InetAddress类来确定本地主机地址 45
3.4.3  使用InetAddress类来找出其他地址 46
3.4.4  Java中的其他地址类型 47
3.5  小结 47
第4章  数据流 49
4.1  概述 49
4.1.1  确切地说,流是什么 49
4.1.2  怎样把流和联网技术联系起来 50
4.2  流的工作方式 50
4.2.1  从输入流中读取数据 51
4.2.2  向输出流写入数据 54
4.3  过滤器流 58
4.3.1  连接过滤器流和已有的流 58
4.3.2  有用的过滤器输入流 59
4.3.3  有用的过滤器输出流 62
4.4  读取器和写入器 65
4.4.1  Unicode字符是什么 65
4.4.2  读取器和写入器的重要性 65
4.4.3  从输入流到读取器 66
4.4.4  低级读取器类型 67
4.4.5  过滤器读取器类型 69
4.4.6  从输出流到写入器 71
4.4.7  低级写入器类型 72
4.4.8  过滤写入器类型 75
4.5  对象持久性和对象序列化 76
4.5.1  什么是对象持久性 76
4.5.2  什么是对象序列化 77
4.5.3  序列化的工作方式 77
4.5.4  把对象读写到流中 78
4.5.5  对象的安全序列化 83
4.5.6  对象序列化和版本控制 83
4.6  小结 84
第5章  用户数据报协议 87
5.1  概述 87
5.2  DatagramPacket类 89
5.2.1  创建DatagramPacket实例 89
5.2.2  使用DatagramPacket对象 90
5.3  DatagramSocket类 90
5.3.1  创建DatagramSocket实例 90
5.3.2  使用DatagramSocket对象 91
5.4  监听UDP包 92
5.5  发送UDP包 93
5.6  用户数据包协议范例 94
5.7  构建UDP客户/服务器 99
5.7.1  构建回显服务 99
5.7.2  构建回显客户 101
5.7.3  运行回显客户和服务器 103
5.8  关于UDP的其他信息 103
5.8.1  缺少可靠交付 104
5.8.2  缺乏可靠包定序 104
5.8.3  缺乏流控制 104
5.9  小结 105
第6章  传输控制协议 107
6.1  概述 107
6.1.1  TCP优于UDP之处 108
6.1.2  使用端口在应用程序间通信 109
6.1.3  套接字操作 110
6.2  TCP和客户/服务器范型 110
6.2.1  客户/服务器范型 110
6.2.2  网络客户 111
6.2.3  网络服务器 111
6.3  TCP套接字和Java 111
6.4  Socket类 112
6.4.1  创建Socket实例 113
6.4.2  使用Socket对象 113
6.4.3  从/向TCP套接字中读取/写入数据 115
6.4.4  套接字选项 116
6.5  创建TCP客户 119
6.6  ServerSocket类 120
6.6.1  创建ServerSocket实例 121
6.6.2  使用ServerSocket 122
6.6.3  接受并处理来自TCP客户的请求 123
6.7  创建TCP服务器 123
6.8  异常处理:套接字特定异常 125
6.8.1  SocketException类 125
6.8.2  BindException类 125
6.8.3  ConnectException类 125
6.8.4  NoRouteToHostException类 126
6.8.5  InterruptedIOException类 126
6.9  小结 126
第7章  多线程应用程序 127
7.1  概述 127
7.1.1  单线程程序设计 127
7.1.2  多进程程序设计 128
7.1.3  多线程程序设计 129
7.2  Java中的多线程 130
7.2.1  用Thread类创建多线程应用程序 130
7.2.2  使用Runnable接口创建多线程应
用程序 132
7.2.3  控制线程 133
7.3  同步 137
7.3.1  方法级同步 137
7.3.2  代码块级同步 141
7.4  线程间通信 142
7.4.1  线程间的通信管道 142
7.4.2  通知等待中的线程发生了某事件 144
7.5  线程组 145
7.5.1  创建线程组 147
7.5.2  使用线程组 147
7.6  线程优先级 150
7.6.1  分配线程优先级 150
7.6.2  获得当前线程优先级 151
7.6.3  限制线程优先级 151
7.7  小结 151
第8章  实现应用协议 153
8.1  概述 153
8.2  应用协议规范 153
8.3  应用协议实现 154
8.3.1  SMTP客户实现 154
8.3.2  POP3客户实现 162
8.3.3  HTTP/1. 0服务器实现 168
8.4  小结 177
第9章  超文本传输协议 179
9.1  概述 179
9.1.1  什么是HTTP 179
9.1.2  HTTP的工作方式 179
9.1.3  Web客户 180
9.1.4  Web服务器 183
9.2  HTTP和Java 186
9.2.1  URL类 186
9.2.2  分析URL对象 188
9.2.3  用URL类检索资源 190
9.2.4  URLConnection类 193
9.2.5  用URLConnection类检索资源 196
9.2.6  使用URLConnection类修改和检
查首部域 199
9.2.7  HttpURLConnection类 202
9.2.8  使用HttpURLConnection类访问
HTTP特有功能 206
9.3  公用网关接口 209
9.3.1  用GET方法发送数据 209
9.3.2  用POST方法发送数据 210
9.3.3  在Java中发送GET请求 210
9.3.4  在Java中发送POST请求 212
9.4  小结 215
第10章  Java servlet 217
10.1  概述 217
10.2  servlet的工作方式 218
10.3  使用servlet 218
10.3.1  GET和POST 220
10.3.2  PUT和DELETE 221
10.3.3  TRACE 221
10.3.4  OPTIONS 221
10.4  运行servlet 221
10.4.1  下载Java Servlet开发包 222
10.4.2  安装servlet引擎 222
10.5  编写简单的servlet 224
10.6  单线程模型 226
10.7  ServletRequest类和HttpServletRequest
类 226
10.8  ServletResponse类和HttpResponse类 228
10.9  ServletConfig类 230
10.10  ServletContext类 231
10.11  servlet异常 232
10.12  cookie 232
10.13  servlet中的HTTP会话管理 235
10.14  小结 237
第11章  远程方法调用 239
11.1  概述 239
11.1.1  什么是远程方法调用 239
11.1.2  比较远程方法调用和远程过程
调用 240
11.2  远程方法调用的工作方式 240
11.3  定义RMI服务接口 242
11.4  实现RMI服务接口 243
11.5  创建存根类和骨架类 244
11.6  创建RMI服务器 245
11.7  创建RMI客户 247
11.8  运行RMI系统 249
11.9  远程方法调用包和类 249
11.10  远程方法调用部署问题 264
11.10.1  动态类加载 264
11.10.2  Java虚拟机之间的差异 266
11.10.3  远程方法调用和applet 267
11.11  利用远程方法调用实现回调 268
11.11.1  面向对象的回调 269
11.11.2  RMI回调 270
11.12  远程对象激活 275
11.12.1  什么是远程对象激活 276
11.12.2  远程对象激活的工作方式 276
11.12.3  创建可激活的远程对象 278
11.12.4  注册可激活远程对象 278
11.13  小结 284
第12章  Java IDL和CORBA 285
12.1  概述 285
12.2  CORBA的体系结构 286
12.2.1  CORBA服务 287
12.2.2  CORBA客户 287
12.3  IDL 288
12.3.1  语言概述 288
12.3.2  IDL数据类型 288
12.3.3  IDL接口 289
12.3.4  IDL模块 289
12.3.5  IDL属性 289
12.3.6  IDL操作 290
12.3.7  IDL异常处理 290
12.4  从IDL到Java 291
12.4.1  一个示例模式 291
12.4.2  把IDL模式映射到Java 291
12.4.3  编写服务者代码 292
12.4.4  编写客户代码 295
12.4.5  把所有东西放到一起 297
12.5  小结 298
第13章  JavaMail 301
13.1  概述 301
13.2  安装JavaMail API 302
13.3  测试JavaMail安装 303
13.4  使用JavaMail API 304
13.4.1  Address类 304
13.4.2  Message类 305
13.4.3  Service类 307
13.4.4  Store类 308
13.4.5  Folder类 309
13.4.6  Transport类 313
13.4.7  Session类 314
13.4.8  用JavaMail发送信息 316
13.4.9  用JavaMail检索信息 319
13.5  JavaMail的高级消息收发功能 323
13.5.1  JavaMail事件处理模型 323
13.5.2  编写JavaMail事件处理器 325
13.5.3  把文件作为附件发送 328
13.6  小结 332

教学资源推荐
作者: Calvin Lin;Lawrence Snyder
作者: 刘奇志 尹存燕 曹迎春 编著
作者: Patrick Henry Winston, Sundar Narasimhan
参考读物推荐
作者: J.D.Meier;Carlos Farre;Prashant Bansode;Scott Barber;Dennis Rea
作者: 罗江宇 赵士杰 李涵淼 闵文俊 著
作者: Stephen C.Perry