源码
简易云盘
项目简介
基于http协议实现本机与服务器之间文件的上传、下载、以及文件列表展示等功能。解决了网盘下载限速的问题。
项目特点
- 线程池
- 多路转接
- 套接字
- TCP
- HTTP
流程设计
- 搭建一个tcp服务器,接收客户端连接请求,建立连接
- 基于多路转接模型进行总线事件监控,若有事件到来,则将描述符抛入线程池中
- 线程池中的线程操作
- http协议格式请求数据解析
http协议解析流程- 根据 \r\n\r\n 获取整个头部
- 头部解析,得到 content-length,然后获取正文
- 分析请求(请求方法 / url请求的资源路径)
- 若为一个实体资源请求,在线程中直接处理(文件列表 / 文件下载)
- 若不是一个实体资源请求,创建多进程进行处理(文件上传请求)
- 请求分析完毕,进行任务处理,组织 http 响应数据,发送给客户端
- 关闭客户端(默认使用http 短链接)
- http协议格式请求数据解析
项目展示