内容简介
第1章 概述
1.1 什么是网络
1.1.1 ISO/OSI参考模型
1.1.2 TCP/IP协议
1.2 什么是网络程序设计
1.2.1 网络程序的模式
1.2.2 为什么使用Java
第2章 Java的输入和输出
2.1 流
2.2 流的分类
2.3 流类概览
2.3.1 InputStream类分支
2.3.2 OutputStream类分支
2.3.3 Reader类分支
2.3.4 Writer类分支
2.3.5 IO异常
2.4 流类详解
2.4.1 InputStream类的常用方法
2.4.2 OutputStream类的常用方法
2.4.3 Reader类的常用方法
2.4.4 Writer类的常用方法
2.4.5 文件流
2.4.6 数组流
2.4.7 基本数据类型流
2.4.8 缓冲流
2.4.9 对象流
2.4.10 管道流
2.4.11 序列字节流
2.4.12 打印输出流
2.4.13 字节流与字符流之间的桥梁流
2.5 标准输入和输出
2.5.1 System类
2.5.2 Scanner类
2.6 压缩流类
2.6.1 GZIP压缩与解压缩
2.6.2 ZIP压缩与解压缩
2.7 如何选择流
第3章 IP地址和URL
3.1 IP地址和名字
3.1.1 主机和端口
3.1.2 IP地址
3.1.3 网络连通性
3.2 InetAddress类
3.2.1 创建InetAddress对象
3.2.2 InetAddress类的其他方法
3.3 SocketAddress类
3.4 URI类和URL类
3.4.1 URI类
3.4.2 URL类
3.4.3 URL的组成
3.4.4 从URL获得数据
3.4.5 URLConnection类
3.4.6 URLStreamHandler类
第4章 基于TCP的通信
4.1 Socket
4.2 Socket类
4.2.1 Socket类的构造方法
4.2.2 控制Socket连接
4.2.3 设置Socket的选项
4.3 ServerSocket类
4.3.1 构造ServerSocket
4.3.2 ServerSocket的常用方法
4.3.3 ServerSocket选项
4.4 多线程服务程序
第5章 基于UDP的通信
5.1 DatagramSocket类
5.1.1 构造DatagramSocket
5.1.2 DatagramSocket类的常用方法
5.1.3 设置DatagramSocket的选项
5.2 DatagramPacket类
5.2.1 DatagramPacket类的构造方法
5.2.2 DatagramPacket类的常用方法
5.2.3 程序实例
5.3 组播Socket
5.3.1 MulticastSocket类
5.3.2 构造MulticastSocket
5.3.3 MulticastSocket的常用方法
5.3.4 程序实例
第6章 NIO和NIO.2
6.1 NIO
6.2 缓冲区Buffer
6.2.1 Buffer类
6.2.2 Buffer类的使用方法
6.3 选择器Selector
6.3.1 Selector的作用
6.3.2 Selector和Channel
6.3.3 使用Selector
6.3.4 SelectionKey类
6.4 Channel接口
6.4.1 SocketChannel类
6.4.2 ServerSocketChannel类
6.4.3 DatagramChannel类
6.4.4 FileChannel类
6.5 示例程序
6.5.1 基于TCP的NIO通信示例
6.5.2 基于UDP的NIO通信示例
6.6 NIO.2
6.6.1 AsynchronousServerSocketChannel类
6.6.2 AsynchronousSocketChannel类
6.6.3 AsynchronousChannelGroup类
6.6.4 示例
6.7 选择IO还是NIO
第7章 多线程和并发
7.1 创建线程
7.1.1 创建线程的方法
7.1.2 线程的状态
7.2 线程类的方法
7.3 同步Synchronization
7.3.1 同步方法
7.3.2 同步代码块
7.4 线程间的协调
7.4.1 唤醒和等待
7.4.2 死锁
7.5 并发
7.5.1 Lock接口
7.5.2 Future接口和Callable接口
7.5.3 Executor接口和ExecutorService接口
7.5.4 Executors类
7.5.5 CountDownLatch类
7.5.6 程序示例
附录 TCP端口列表