QT Group Chat

QT群聊简易聊天系统

来自:【QT实现群聊聊天系统】

1. 简介

  • QT 图形化工具

  • UI 设计

  • 网络通信基本原理

  • UDP 协议

  • QT 编程

主要技术栈

主要是一个仿QQ的聊天软件,实现在单台设备上的交互通信功能。

使用的是UDP的不可靠传输

  1. 报文简短,传输效率高

  2. UDP实现简单,不用关系太多的安全性复杂功能

  3. 建议实现一对一、一对多、多对一、多对多的传输

本项目采用的是多对多的,而非点到点的连接。

但会有如下缺点

  1. 安全性差,无序列号检查

  2. 无重传机制,无丢包检测

  3. ...等等

QT编程基础

涉及了UI界面的设计

QT编程的一些关键组件和组件关键字

还涉及到了Cmake构建工程的过程,虽然Qt将其封装得比较厉害,但是还是能看出个大概的

涉及到了一些文件流操作...等

总的来说是打下基础吧,Qt绝对不止这么简单,我也没到能脱离文档独立开发的地步,很多函数的参数和返回值还是记不太清楚

目的

一方面是为了实践巩固网络的知识,但是这一点单靠这里的实现我觉得不太够,后续可以考虑发展成为局域网内跨设备的 基于WebServer的聊天室,这里的项目展示仅仅基于B站老师讲的内容。

后续也许会进行后续开发

2. 项目开发

2.1. 两个界面

登录列表 和 聊天框

手撸的

2.2. 两个文件

2.2.1. login.cpp / .h

管理登录列表,主要是处理用户的上线操作,用户的名称和头像

2.2.2. widget.cpp / .h

聊天框

  • 显示聊天内容

  • 显示用户的登入登出

用户列表&处理区

  • 显示在线的用户

  • 显示在线人数

  • 发送消息

  • 退出群聊

文本框&功能区

  • 可以发送消息,所有在线的群成员都能接收到

  • 改变字体样式

  • 改变字体大小

  • 特殊字体:加粗/斜体/下划线/改变颜色

  • 保存聊天框内聊天记录

  • 清空聊天框内信息

主要界面和功能就是这些

3. 总结

项目很好的进行了一次Qt开发尝试,而且这个项目我后期有二次开发的想法。也很好拓展,具体时间后续再安排。也复习了一部分(虽然很少)的网络知识。开发周期在一天左右,但我拖了三天...前后穿插了一些别的事务...所以总体而且体验还是不错的,up 也有开源代码,点个赞。

Last updated