迷你网盘
前言:
迷你网盘是一个小项目,本质上是一个http服务器,在这个http服务器汇总实现文件上传,下载,展示功能。在下载功能中使用http协议拓展出断点续传输、分块传输功能。最终实现出一个迷你网盘。
这个文件上传下载使用的是http协议,因为它用的多,在做项目的过程中,可以增强对http协议的理解。
目录
整体框架:
- 建立tcp服务端程序;
- 是为新的客户端建立线程池任务并添加到线程池中,因此我们还要创建一个线程池;
- 线程池中的线程获取任务;
- 接收http请求数据;
- 解析http请求数据;
- 判断请求类型;
请求类型有三种:
- 文件列表请求
- 文件下载请求
- 文件上传请求
http服务端设计
- 创建爱你socket
- 绑定地址信息
- 开始监听
- 获取已连接成功的客户端socket
- 服务端程序的业务处理--->创建线程任务,将任务添加到线程池中
http响应处理
http请求处理
任务对象设计
- 任务处理函数
- 任务处理参数
线程池设计
- 创建线程
- 创建线程安全的任务队列--->任务入队,处理完毕后任务出队
- 线程池终止
文件上传的CGI请求处理
文件上传程序
服务器所需要主要对象