第1章 数据的编码和解码 1
1.1 实验目的 1
1.2 实验原理 1
1.2.1 数据编码与解码 1
1.2.2 常见的字符编码 1
1.2.3 字符串java.lang.String的编码、解码方法 2
1.2.4 字符集java.nio.Charset 3
1.3 实验内容 4
1.3.1 程序界面设计实现 5
1.3.2 编码功能的实现 5
1.3.3 解码功能的实现 6
1.3.4 英文字符和中文字符编码结果比较 6
1.3.5 编码解码是否一致的效果比较 7
1.4 小结与思考 7
第2章 Java多线程编程 8
2.1 实验目的 8
2.2 实验原理 8
2.2.1 线程概念与线程状态 8
2.2.2 创建线程与启动 9
2.2.3 线程的同步 10
2.2.4 线程之间的协调通信 11
2.2.5 线程池 14
2.2.6 Java的定时器Timer 16
2.3 实验内容 17
2.3.1 线程的创建——输出子线程相关属性 17
2.3.2 线程同步 18
2.3.3 单线程、多线程、线程池计算素数 20
2.3.4 Java计时器 23
2.4 小结与思考 27
第3章 IO流 28
3.1 实验目的 28
3.2 实验原理 28
3.2.1 基本输入流和输出流 30
3.2.2 文本输入流和输出流 31
3.2.3 缓冲流 32
3.2.4 数据流DataInputStream和DataOutputStream 32
3.2.5 阅读器和书写器Reader和Writer 34
3.2.6 对象序列化流ObjectInputStream和ObjectOutputStream 35
3.2.7 常用IO流之间的转换和使用要点 36
3.3 实验内容 37
3.3.1 数据流的应用——二进制文件的读写 37
3.3.2 文件复制 38
3.3.3 对象序列化——通信录程序 40
3.3.4 文件分割程序 42
3.3.5 多线程文件分割合并程序 44
3.4 小结与思考 54
第4章 网络地址与网络接口类 55
4.1 实验目的 55
4.2 实验原理 55
4.2.1 网络地址 55
4.2.2 网络地址类InetAddress 56
4.2.3 网络接口类NetworkInterface 57
4.3 实验内容 58
4.3.1 DNS域名解析程序 58
4.3.2 主机扫描程序 60
4.3.3 获取主机网络接口配置信息 65
4.4 小结与思考 68
第5章 TCP套接字编程 69
5.1 实验目的 69
5.2 实验原理 69
5.2.1 TCP基本通信模型 69
5.2.2 TCP服务器模型 73
5.2.3 TCP粘包与边界划分 74
5.3 实验内容 75
5.3.1 TCP编程基本模型分析 75
5.3.2 TCP报文打包和解包技术 78
5.3.3 TCP服务器模型 88
5.3.4 TCP聊天室 92
5.3.5 TCP文件服务器 105
5.4 小结与思考 114
第6章 UDP编程 115
6.1 实验目的 115
6.2 实验原理 115
6.2.1 UDP协议特点 115
6.2.2 DatagramSocket类和DatagramPacket类 116
6.2.3 发送和接收UDP报文 119
6.2.4 UDP报文打包和解包 120
6.2.5 UDP广播 122
6.3 实验内容 122
6.3.1 简单的点对点UDP聊天 122
6.3.2 UDP广播 124
6.3.3 远程唤醒技术WOL 127
6.3.4 基于UDP的文件传输程序 131
6.4 小结与思考 139
第7章 组播编程 140
7.1 实验目的 140
7.2 实验原理 140
7.2.1 组播地址 140
7.2.2 广播和组播的区别 141
7.2.3 组播编程相关类 143
7.2.4 组播报文的发送和接收 143
7.3 实验内容 144
7.3.1 简单的组播报文发送 144
7.3.2 基于组播的网络会议室 146
7.4 小结与思考 152
第8章 JavaMail编程 153
8.1 实验目的 153
8.2 实验原理 153
8.2.1 电子邮件传输原理 153
8.2.2 JavaMail简介 154
8.2.3 使用JavaMail发送、接收简单电子邮件 155
8.2.4 使用JavaMail发送、接收复杂电子邮件 156
8.3 实验内容 158
8.3.1 发送一封电子邮件 158
8.3.2 接收一封电子邮件 160
8.4 小结与思考 162
第9章 基于Java的报文捕获库JPcap 163
9.1 实验目的 163
9.2 实验原理 163
9.2.1 网络抓包的原理和关键技术 163
9.2.2 JPcap简介 164
9.2.3 使用JPcap捕获报文 164
9.2.4 使用JPcap读取报文数据 166
9.3 实验内容 168
9.4 小结与思考 169
附录A 常用网络协议报文格式 170
A.1 Ethernet帧的格式 170
A.2 IP协议首部的格式 170
A.3 ICMP报文的格式 172
A.4 TCP报文 172
A.5 UDP报文 174
附录B 使用WindowBuilder开发图形用户界面程序 175
B.1 Swing Designer开发环境介绍 175
B.2 常见GUI控件及其相关用法 179
参考文献 182