1.资源共享下载器
功能描述:搜索附近(局域网)在线用户,获取到在线用户列表之后,可以查看指定用户的共享
文件列表,进而对感兴趣的文件进行下载。
服务端功能;
-1.提供能够被附近客户端发现的功能(对主机配对请求进行一个响应)
-2.提供客户端请求文件列表的功能
-3.提供客户端文件下载的功能
客户端功能;
-1.搜索附近主机(向局域网内广播主机配对请求)
-2.获取指定主机的共享文件列表
-3.下载指定主机的指定文件
项目使用的技术
Socket套接字编程(了解最基本线程池版本任务处理的tcp服务端程序)
HTTP协议格式(了解最基本的http服务器中数据的接收处理响应流程,文件传输) cpp-httplib的基本使用(能够搭建基本的http服务器,并创建客户端发起请求得到响应
接口类封装介绍
2.实现;
网络通信:
协议的选择:http协议
项目的功能实现:http服务端功能/http客户端功能
使用httplib搭建服务端/客户端
1.基础知识讲解
http回顾;
http协议格式;
URL:http://username:password@www.baidu.com:端口号/路径?用户数据 片段
首行;
请求首行;请求方法 URL 协议版本\r\n
GET/POST/HEAD/PUT/DELETE
响应首行;协议版本 状态码 状态码描述\r\n
1**/2**/3**/4**/5** 200/301(永久重定向)/302(临时)/400/404/500/
https(443)就是基于http(80)上进行了一层加密
头部;
以key:val组成的组成的键值对,每个键值对都以\r\n作为结尾
content-length/content-type /location/transfer-encoding:trunck/set-cookie/cookie
空行;
正文;
httplib命名空间;
namespace httplib{
std::multimap<std::string,std::string,>headers;
typedef void(*handler)(const request&req,response &rsp)
class request{}
class response{}
class client{}
class server{}
}