当前位置: 首页 > news >正文

QT6聊天室项目 网络通信实现逻辑分析

实现逻辑

模块话网络通信设计分析

NetClient类

  • 功能:负责与服务器进行通信
  • httpClient:处理HTTP请求
  • websocketClient:处理WebSocket通信

HTTP请求封装

  • 设计请求和服务器响应的接口
  • 设计函数测试网络连接性
  • 设计处理的函数处理HTTP请求(后期实现)

WebSocket连接管理

  • 初始化该连接,同时通过WebSocket进行双向通信
  • 发送消息的时候确定其消息的有效性

分层结构

NetClient类设计

DataCenter类持有NetClient对象的实例

客户端实现框架总结

websocket 设计

信号处理逻辑的实现

  • 建立连接后:Connected 信号
  • 连接出错:errorOccurred信号
  • 收到文本消息:textMessageReceived信号
  • 断开连接后:disconnected
  • 收到二进制消息:binaryMessageReceived信号

HTTP服务器

借助引入文件的方式,来保证客户端和服务端Protobuf文件内容一致

基于HTTP,完成ping请求,客户端请求服务端响应 

  • 下列代码:客户端实现ping请求的函数实现逻辑

 服务端响应客户端ping函数的实现 

客户端和服务端Ping命令测试

websocket服务器

身份认证

相关文章:

  • 优化算法与正则化
  • Tomcat服务详解
  • 我与Linux的爱恋:yum和vim以及gcc的使用
  • A题 农村公交与异构无人机协同配送优化
  • Rust:Restful API 服务程序开发详述
  • 【ShuQiHere】从残差思想到 ResNet:深度学习的突破性创新
  • 【Python系列】只更新非空的字段
  • 【阅读文献】一个使用大语言模型的端到端语音概要
  • 无法用 FileZilla 传送文件的解决方案
  • AIGC简化文件管理:Python自动重命名Word和PDF文件
  • 配置Microsoft Exchange接受域的详细指南
  • 【数据结构】排序算法系列——序言(附源码+图解)
  • Vue——Diff算法
  • 9.8通宵速通javascript
  • 图论(2)
  • 《深入 React 技术栈》
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 【知识碎片】第三方登录弹窗效果
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Objective-C 中关联引用的概念
  • php面试题 汇集2
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 成为一名优秀的Developer的书单
  • 官方解决所有 npm 全局安装权限问题
  • 记一次删除Git记录中的大文件的过程
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 消息队列系列二(IOT中消息队列的应用)
  • 一些关于Rust在2019年的思考
  • 鱼骨图 - 如何绘制?
  • ​​​​​​​​​​​​​​Γ函数
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (javaweb)Http协议
  • (Ruby)Ubuntu12.04安装Rails环境
  • (定时器/计数器)中断系统(详解与使用)
  • (二)springcloud实战之config配置中心
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (九十四)函数和二维数组
  • (一一四)第九章编程练习
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (已解决)什么是vue导航守卫
  • (转)visual stdio 书签功能介绍
  • (自用)仿写程序
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net MVC4 上传大文件,并保存表单
  • .NET 事件模型教程(二)
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ Socket学习 ] 第一章:网络基础知识
  • [bzoj2957]楼房重建
  • [C++内存管理]new,delete,operator new,opreator delete
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [CDOJ 1343] 卿学姐失恋了
  • [CSS]浮动
  • [Day 43] 區塊鏈與人工智能的聯動應用:理論、技術與實踐