此版本是原始版本,客户端是Qt5.15.2,服务器是centos7。
Qt6版本地址(有时间持续更新代码|优化代码|重构代码|重写代码...):https://github.com/swansfought/EChat-Qt6
Qt即时通讯软件EChat(Qt版本是5.15.2)。23年大四下毕业设计,本项目主要提供稳定且支持多平台的通讯软件,以提升用户体验。至于代码方面也存在很多问题的,很多其实需要重写和优化的。
Linux 、 C/C++ 、 QT 、 Socket 、 epoll 、 CMake 、 QSS 、 JSON 、jsoncpp 、 HTML 、 MySQL 、 SQLite 。
服务器代码:epoll+多线程实现高并发,数据存储使用MySQL
客户端代码:qt编写,数据本地存储使用SQLite
列举服务器的一些主要问题,客户端的以及服务器其他的问题可以自行进行完善和补充哈!
1、多线程方面:使用线程池去管理线程的创建和销毁,提高服务器处理效率;
2、内存管理方面:对于请求报文(json)这种大小相对固定的数据不必每次读取申请内存,一定程度上有助于提高服务器处理效率;
3、文件收发方面:先说结论,正常都是支持10M以内的文件收发,10M以上的服务器端的程序容易崩。文件就txt,图片应该都是可以的,主要是像docx、pdf和zip等这些编码没研究明白。至于程序崩溃了怎么办,我这里恰好这里采用了systemd去管理服务端程序,一定程度上缓解了此问题🥲。
4、数据安全方面:消息收发都是明文发的哈,没有使用加密机制(如SSL)去确保消息的私密性;用户密码方面数据库中使用MD5加密,本地如果勾选保存密码,则采用的是字符密钥加密算法存储在配置文件中。
只列出已实现的
只列出已实现的




.png)






