Qt编写的项目作品19-图片及视频TCP/UDP网络传输

一、功能特点

  1. 多线程收发图片数据和解析图片数据,不卡主界面。
  2. 同时支持TCP和UDP两种模式,封装了TCP模式以及UDP模式的客户端类和服务端类。
  3. 图片传输客户端同时支持发送到多个服务端,可以作为一个教师机同屏发送到多个学生机的应用场景。
  4. 同时支持多个客户端同时往服务端发送图片,服务端每个连接都会自动开辟线程收发和解析图片数据。
  5. 自定义label控件信号槽机制绘制图片,不卡主界面。
  6. 自带心跳机制判断离线,自动重连服务器,可设置超时时间。
  7. 每个消息都有唯一的消息标识uuid,服务端收到以后会返回对应的uuid消息表示收到,客户端可以根据此返回消息判断服务端解析成功,不用再发,这样可以确保发出去的数据服务器接收到了并解析成功。
  8. 每个消息都有唯一的图片标识flag,相当于ID号,根据此标识判断需要解析显示到哪个界面。
  9. 图片以base64的字符串格式发送,接收端接收到base64字符串的图片数据解码后重新生成图片。
  10. 所有数据的收发都有信号发出去,方便输出查看。
  11. 都提供单例类,方便只有一个的时候直接使用无需new。
  12. 采用自定义的xml协议,可以自由拓展其他属性字段比如带上图片内容等。

二、效果图


三、体验地址

  1. 体验地址:https://pan.baidu.com/s/1bbL2ZughZAgfIGrexyN-9g 提取码:zkeh 文件名:bin_video_image.zip
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun
  4. 个人主页:https://blog.csdn.net/feiyangqingyun
  5. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

备注:如果网盘下载不到可以去开源主页下载

原文地址:https://www.cnblogs.com/feiyangqingyun/p/12433147.html

时间: 2025-01-10 08:34:53

Qt编写的项目作品19-图片及视频TCP/UDP网络传输的相关文章

Qt编写图片及视频TCP/UDP网络传输

一.前言 很多年前就做过类似的项目,无非就是将本地的图片上传到服务器,就这么简单,其实用http的post上传比较简单容易,无需自定义协议,直接设置好二进制数据即可,而采用TCP或者UDP通信的话,必须自定义协议,因为不知道什么时候数据接收完了是完整的图片数据,可能同时在发送很多图片数据,而且还不能区分收到的图片是哪个客户端发来的,TCP长连接的话,还需要有心跳来检测连接,所以必须自定义一套协议来支撑通信,这套协议采用的是上海监管平台的通信协议格式,拓展性比较强,其中头部信息包括了类型+当前完整

Qt编写的项目作品8-RTSP播放器+视频监控(vlc版本)

一.功能特点 多线程实时播放rtsp视频流. 支持windows+linux+mac. 多线程显示图像,不卡主界面. 自动重连网络摄像头. 可设置边框大小即偏移量和边框颜色. 可设置是否绘制OSD标签即标签文本或图片和标签位置. 可设置两种OSD位置和风格. 可设置是否保存到文件以及文件名. 可播放本地视频文件,支持设置帧率. 支持h265视频流+rtmp等常见视频流. 可暂停播放和继续播放. 支持回调模式和句柄两种模式. 自动将当前播放位置和音量大小是否静音以信号发出去. 提供接口设置播放位置

Qt编写的项目作品7-视频监控系统

一.功能特点 支持16画面切换,全屏切换等,包括1+4+6+8+9+13+16画面切换. 支持alt+enter全屏,esc退出全屏. 自定义信息框+错误框+询问框+右下角提示框. 17套皮肤样式随意更换,所有样式全部统一,包括菜单等. 云台仪表盘鼠标移上去高亮,八个方位精准识别. 底部画面工具栏(画面分割切换+截图声音等设置)移上去高亮. 可在配置文件更改左上角logo+中文软件名称+英文软件名称. 封装了百度地图,视图切换,设备点位,鼠标按下获取经纬度等. 堆栈窗体,每个窗体都是个单独的qw

Qt编写的项目作品18-数据导出到Excel及Pdf和打印数据

一.功能特点 原创导出数据机制,不依赖任何office组件或者操作系统等第三方库,尤其是支持嵌入式linux. 10万行数据9个字段只需要2秒钟完成. 只需要四个步骤即可开始急速导出大量数据到Excel. 同时提供直接写入数据接口和多线程写入数据接口,不卡主界面. 可设置标题.副标题.表名. 可设置字段名称.列宽度. 可设置是否启用校验过滤数据.校验的列.校验规则.校验值,符合规则的特殊颜色显示. 可设置随机背景颜色及需要随机背景色的列集合. 支持分组输出数据,比如按照设备分组输出数据,方便查看

Qt编写的项目作品16-Onvif搜索和云台控制工具

一.功能特点 广播搜索设备,支持IPC和NVR,依次返回,可选择不同的网卡IP. 依次获取Onvif地址.Media地址.Profile文件.Rtsp地址. 可对指定的Profile获取视频流Rtsp地址,比如主码流子码流地址. 可对每个设备设置Onvif用户信息,用于认证获取详细信息. 可实时预览摄像机图像. 支持云台控制,可上下左右调节云台,支持绝对移动和相对移动,可放到和缩小图像远近. 支持Qt4和Qt5任意Qt版本,亲测Qt4.7.0到Qt5.12.4. 支持任意编译器,亲测mingw.

Qt编写的项目作品12-简易视频播放器

一.功能特点 多线程实时播放rtsp视频流. 支持windows+linux+mac. 多线程显示图像,不卡主界面. 自动重连网络摄像头. 可设置边框大小即偏移量和边框颜色. 可设置是否绘制OSD标签即标签文本或图片和标签位置. 可设置两种OSD位置和风格. 可设置是否保存到文件以及文件名. 可播放本地视频文件,支持设置帧率. 支持h265视频流+rtmp等常见视频流. 可暂停播放和继续播放. 支持回调模式和句柄两种模式. 自动将当前播放位置和音量大小是否静音以信号发出去. 提供接口设置播放位置

Qt编写的项目作品17-自定义曲线图柱状图

一.功能特点 可设置X轴Y轴范围值. 可设置背景颜色+文本颜色+网格颜色. 可设置三条曲线颜色+颜色集合. 可设置是否显示定位十字线,可分别设置横向和纵向. 可设置十字线的宽度和颜色. 可设置是否显示数据点以及数据点的大小. 可设置是否填充背景形成面积图. 可设置模式-拖动+缩放等. 可设置坐标轴间距+第二坐标系可见. 提供接口setDataLine直接设置曲线,支持多条. 提供接口setDataBar直接设置柱状图,支持多条形成堆积图. 提供接口setLabs设置文本标签替代key,包括X轴和

Qt编写的项目作品20-百度地图综合应用(在线+离线+区域)

一.功能特点 同时支持闪烁点图.迁徙图.区域地图.仪表盘等. 可以设置标题.提示信息.背景颜色.文字颜色.线条颜色.区域颜色等各种颜色. 可设置城市的名称.值.经纬度 集合. 可设置地图的放大倍数.是否允许鼠标滚轮缩放. 内置世界地图.全国地图.省份地图.地区地图,可以精确到县,所有地图全部离线使用. 内置了各省市json数据文件转js文件功能,如有数据更新自行转换即可,支持单个文件转换和一键转换所有文件. 内置了从json文件或者js文件获取该区域的所有名称和经纬度信息集合的功能,可以通过该方

Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)

一.自定义控件大全 (一).控件介绍 超过150个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的控件数量. 每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量.qwt的控件类环环相扣,高度耦合,想要使用其中一个控件,必须包含所有的代码. 全部纯Qt编写,QWidget+QPainter绘制,支持Qt4.6到