本仓库收录深圳大学《互联网编程》课程中的编程练习与课程实验,主要使用 Java 完成,内容涵盖 Internet 地址、DNS、TCP Socket、多线程与线程池、URL 资源下载、HTTP 客户端与服务器、Cookie 会话以及并发测试。
仓库按照课程学习顺序组织,重点记录从 Java 网络基础 API 到 HTTP 协议应用的学习过程。
本仓库主要用于保存课程学习成果。代码基本保留完成练习和实验时的原始状态,没有按照生产项目标准重新设计或重构,也不保证在所有新版本 JDK 和操作系统环境中直接运行。
InetAddress 与域名/IP 查询
↓
TCP Socket 与并发服务器
↓
URL、文件下载与断点续传
↓
使用原生 Socket 理解 HTTP
↓
HTTP 服务器、客户端、Cookie 与压力测试
| 顺序 | 内容 | 主要知识点 | 主要入口 |
|---|---|---|---|
| 01 | 编程练习1:Internet 地址 | InetAddress、本机地址、域名与 IP 相互查询 |
Program1.java、Program2.java |
| 02 | 实验2:多线程与线程池 TCP 服务器 | ServerSocket、一连接一线程、线程池、并发客户端、同步日志 |
两套服务器对比实现 |
| 03 | 实验3:域名解析与 URL 下载 | DNS、NetworkInterface、URL、文件 I/O、HTTP Range 断点续传 |
DomainNameResolver.java、URLDownloader.java、ResumeDownloader.java |
| 04 | 编程练习2:Socket 实现 HTTP 客户端 | 手动构造 HTTP 请求、解析响应、重定向、资源下载、Swing | SimpleHttpClient.java |
| 05 | 实验4:HTTP 服务器与客户端 | GET/HEAD/POST、线程池、静态资源、Cookie 会话、压力测试 | HttpServer.java、HttpClient.java、StressTestClient.java |
java-internet-programming/
├── 01-编程练习1-Internet地址/
├── 02-实验2-多线程与线程池TCP服务器/
├── 03-实验3-域名解析与URL下载/
├── 04-编程练习2-Socket实现HTTP客户端/
├── 05-实验4-HTTP服务器与客户端/
├── .gitignore
└── README.md
每个文件夹包含该阶段的源码、原始实验报告和简要说明。课程完成时产生的 .class、IDE 配置和临时运行文件未纳入仓库。
- Java 网络编程:
InetAddress、NetworkInterface、URL、URLConnection - TCP 通信:
Socket、ServerSocket - 并发编程:
Thread、ExecutorService、线程池、CountDownLatch - HTTP:请求行、响应头、GET、HEAD、POST、重定向和静态资源
- 状态管理:Cookie、服务端会话
- 文件与流:字符流、字节流、文件下载和断点续传
- 简单界面与测试:Swing、本地 Python 测试服务器、并发压力测试
- 若想按照课程进度浏览,可从
01开始依次阅读。 - 若想先了解综合实验,可直接查看
05-实验4-HTTP服务器与客户端。 - 各文件夹中的 README 会列出主要源码入口和对应实验报告。
- 实验报告保留了课程完成时的原始内容,包括运行截图、实验过程和个人信息。
黄瑜(Huang Yu) 深圳大学计算机与软件学院 · 软件工程