一个在VMware创建的linux环境虚拟机中,使用 Qt 开发的“客户端-服务端”示例/应用。项目包含独立的服务端与客户端组件,便于本地或局域网内进行通信功能的开发与验证。
- 项目类型:Qt 跨平台桌面/控制台应用
- 主要语言/框架:Qt 5.12.8(GCC 64-bit),C++11(视你的 Kit 配置)
- 组成模块:
- 服务端(Server):监听端口,处理来自客户端的请求
- 客户端(Client):向服务端发起连接与请求,并展示结果
- 实现了一个类似于腾讯会议的视频会议功能
必需:
- 操作系统:Linux / Windows / macOS(任选其一;下文以 Linux 为例)
- Qt 版本:Qt 5.12.8(GCC 64-bit Kit)
- 编译器与构建工具:gcc/g++、make
- 网络访问权限:本机端口监听与回环/局域网访问
可选:
- OpenSSL(若涉及 TLS/SSL)
- 其他 Qt 模块(如 QtNetwork、QtWebSockets、QtSerialPort 等)
- 登陆注册界面:
- 分为两种页面,可选择专家端或工厂端,二者的ui风格不同以作区分
- 密码需要包含大小写字母和数字且不能有特殊符号,必须八位以上
- 密码采用了一次性哈希加密
- 工单构建与接受
- 工厂端可以创建生成工单,可以填写工单的信息与标题。创建后专家端刷新状态即可看到并选择是否接受
- 每个工单创建时随机生成一个工单号,这个工单号对应视频会议功能的具体房间号,需要都正确填入工单号才能进行视频会议
- 工厂端选中工单或专家端接受工单后选中,可以进入到设备管理界面查看具体的设备信息(仅做了随机数模拟和QtCharts的图表演示),并且可以实时发送设备修改信息
3)实时通讯模块
- 进入视频会议填写正确的工单号后可以进入房间
- 基本还原了腾讯会议所能做到的功能(但是屏幕共享功能会十分卡),可以进行视频会议,以及画笔标注
- 右侧有聊天框,类似于微信群聊,可以发送文字,图片,文档等信息
- 当所有人都离开房间时,服务端会自动录制并保存本次会议出现的摄像头画面,笔记标注以及屏幕共享画面,自动存放于企业知识库模块,可以在其中通过搜索房间号找到该视频
- 打开工程
- 打开 APP 目录中的顶层工程文件(例如顶层 .pro 或 CMakeLists.txt)
- 若 client 与 server 是独立子项目,可分别打开各自的 .pro
- 选择 Kit
- Desktop Qt 5.12.8 GCC 64bit
- 构建与运行
- 先构建 server 子项目并运行
- 再构建 client 子项目并运行,连接到服务端
以 Linux 为例:
# 进入服务端目录,生成 Makefile 并编译
cd APP/server
mkdir -p build && cd build
qmake ..
make -j$(nproc)
# 运行服务端(示例)
./server --port 12345
# 另开终端,构建客户端
cd APP/client
mkdir -p build && cd build
qmake ..
make -j$(nproc)
# 运行客户端(示例)
./client --host 127.0.0.1 --port 12345如使用 CMake,请将上述命令替换为标准 CMake 三部曲:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/<executable>
---