Skip to content

swansfought/EChat-Qt5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

此版本是原始版本,客户端是Qt5.15.2,服务器是centos7。

Qt6版本地址(有时间持续更新代码|优化代码|重构代码|重写代码...):https://github.com/swansfought/EChat-Qt6


EChat概述

​ 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加密,本地如果勾选保存密码,则采用的是字符密钥加密算法存储在配置文件中。

功能模块(图片形式展示)

1. 登录注册模块

image

2.消息收发模块

image

3.联系人管理模块

image

4.文件管理模块

只列出已实现的

image

5.用户配置模块

只列出已实现的

image

6.用户反馈模块

部分截图

系统登录界面效果图

image

好友消息收发界面效果图

image

好友申请列表效果图

image

个人和好友信息展示效果图

image

发送图片效果图

image

创建群聊效果图

image

用户配置界面图

image

About

Qt即时通讯软件EChat(Qt版本是5.15.2)。23年大四下毕业设计,本项目主要提供稳定且支持多平台的通讯软件,以提升用户体验。 至于代码方面也存在很多问题的,很多其实需要重写和优化的。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors