Linux C++实现的网盘项目.Qt网盘客户端。服务器使用Epoll高并发模型,实现多线程、连接池、公平调度算法。Qt实现操作界面
一、基本架构(服务端Linux,客户端Qt)
(一)、服务端结构
1、Linux系统
2、Epoll IO复用模型:高效的Epoll边缘触发IO复用
3、线程池:采取主线程(处理连接,派发任务,与均衡器通信。不进行其它IO操作)+子线程(执行客户端任务,进行IO操作)模式,实现了线程池
4、数据库连接池(单例模式):采用MySql的Connector/C++ 数据库框架,并配合RAII机制,实现一个自动申请和释放的数据库连接池
5、OpenSSL(安全套接字传输):使用Openssl框架实现,客户端与服务端之间安全加密传输,保护传输安全
6、Openssl文件校验:才是Openssl,对文件进行SHA256计算,并利用计算结果作为文件名,实现妙传,和文件传输校验。
7、基于小根堆的定时器:采用小根堆作为底层数据结构,实现了一个定时器,将长期不活跃的连接释放,减少服务器负载
8、分级日记系统(单例模式):使用多线程对日记进行写入。日记级别分为:Debug、