《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情

基于Qt的聊天室项目

阅读:312256931    分享到

学完 Python 语言和 网络编程以及 Qt 界面开发之后,能利用所学知识做一个带界面的聊天室项目,项目采取 C/S 构架(服务器/客户端),所以我们的项目包括服务器端程序和客户端程序。

项目说明

开发工具以及运行平台说明:

  • 编程语言:使用 Python 3,版本可以是 3.6,3.7,3.8,3.9,都可以。
  • 界面库:界面库使用 Qt5,使用命令 pip install pyqt5 即可安装。
  • 运行平台:服务器端可以运行在 Linux 系统下或者 Windows 系统下(Win7 或者 Win10)。

项目实现的功能:

  • 注册登陆功能。
  • 聊天室内用户列表管理。
  • 聊天室内文字聊天。
  • 聊天室内送礼物。

项目效果图如下:

项目开发完成后,先启动服务器端,然后再启动客户端,客户端可以启动多个,如上面的图例,我们启动 3 个客户端。

我们启动客户端后,我们先注册,在此,我注册了三个账号(如花,老鸟python 和周星星),注册成功后,就可以登录进聊天室,如上面的图例,如花先登进聊天室,然后是老鸟python 进入聊天室,最后是周星星进入聊天室。

在聊天室内,首先,如花送了礼物(汽车和美女),然后老鸟python 说了一句话:“大家好,欢迎大家来学习 python”,最后周星星说了一句:“老师好”。

项目核心技术点

服务器:采用 TCP 协议搭建,用于处理客户端的各种请求(注册,登录,送礼物,聊天等等)操作,并能同时处理多个客户端请求(可选用多线程,线程池,select 模型,epoll 模型)。

客户端:采用 TCP 协议连接服务器,QT 实现工作者线程和 UI 线程数据通信。

协议:粘包分包处理,应用层协议构建,数据包格式构建,各种异常退出处理,心跳检测处理等。

其它:TCP协议C/S架构,MVC分层架构、Python面向对象技术多线程并发、线程同步与互斥、对象之间信号与槽通信机制等。

达到的目标以及效果

此项目要求同学们独立完成,项目需要有自己的思路和创意。项目效果演示能经受突发情况(电脑不同、断网断电、错误操作等)的冲击、核心功能完善无 bug,并且能有个人水平的突破,项目最终版本可以上线使用。

同学们如能独立完成此项目,相当于熟练掌握了 TCP 网络协议的应用和 Python 面向对象编程思想和模块化思想,拥有编写网络软件的能力,熟练使用界面库 Qt。并且经过此次项目,同学们拥有了大型项目的布局概念、知道自己的技术栈,将来在面试、职业生涯中都是不可缺失的宝贵经验。

项目架构说明

服务器端架构如下图:

客户端架构如下图:

项目功能模块和用到的知识点详细说明

功能模块 知识点
用户管理 注册用户管理业务逻辑编写
登录用户管理业务逻辑编写
聊天室用户理
注册功能 注册包构建
注册查重
注册文件同时写处理
登陆功能 登录包构建
登录查重
房间群聊 聊天信息包构建和处理
房间用户进入和退出处理
礼物信息包构建和处理
协议包构建 包头构建
包内容构建
json序列化
粘包分包处理 粘包分包原因
粘包分包处理算法
包头解析方
应用层协议构建 阻塞recv多线程处理
connect,send,close处理
异步方案
和主线程通信方式(信号槽或其它)
并发处理方案 多线程
select模型
epoll模型
心跳检测 为什么要心跳检测
心跳检测方式
检测物理线路和检测套接字区别
套接字退出处理 阻塞套接字如何退出
应用层关闭包构建
四次挥手的作用
通信逻辑和界面交互 多线程
消息循环
工作者线程和UI线程通信
qt窗口部件 lable,edit,button,checkbox等等
界面美化
信号槽

如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论