Qt UDP组播的应用
最近学习了组播的应用。组播传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它能提高了效率。减少了骨干网络出现拥塞的可能性。
因为最近在看视频传输,对于一个客户端的视频,如果通过组播的方式传输给其他端,那么对于传输效率和处理速度是有非常大的帮助的,所以组播在一些特定领域起到了很大的帮助。
那么在Qt中一个socket加入组播应该怎么写呢?
multicastsocket = new QUdpSocket(this);QHostAddress multiAddr("224.2.3.1");//这里要选一个组播地址if(!multicastsocket->bind(QHostAddress::AnyIPv4,20002,QAbstractSocket::ShareAddress)){qDebug()<<"连接失败";}//设置缓冲区multicastsocket->setSocketOption(QAbstractSocket::MulticastLoopbackOption,0);//加入组播组if(!multicastsocket->joinMulticastGroup(multiAddr)){qDebug()<<"加入组播失败";}//连接信号与槽connect(multicastsocket,SIGNAL(readyRead()),this,SLOT(dataRecieved()));//dataRecieved是接收端的接收函数
我觉得比较重要的有下面几点:
第一是对于发送端它是不需要加入组播的,当然加入也可以,但是理论上只需要接收端进行加入组播并且选择端口进行监听。发送端只需要向选定的组播地址和组播端口发送数据就可以了。
第二个是其实组播和正常的Qt局域网通信其实差不太多。别忘记了
if(!multicastsocket->joinMulticastGroup(multiAddr)){...}
这句话,这句话是能接收到数据的关键,也是组播和非组播的区别之一。
Qt UDP组播的应用相关推荐
- Qt udp组播Qt udp组播
代码部分: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> ...
- Qt网络编程-简易版UDP组播通信入门Demo(5)
Qt网络编程-简易版UDP组播通信入门Demo(5)
- ios 接收 c# socket udp 组播
最近用wcf 服务 给ios和安卓做接口,做了几个ios的项目 用udp 组播 让ios多终端接收和刷新方法 做一个简单的小例子会把工程给大家下载的 c#代码:netSocketUDP.rar io ...
- 基于stm32f107 stm32cube 和 LWIP 协议实现 udp 组播通信
最近在做一个基于stm32f107 实现 UDP 组播通信的项目,项目基于 stm32cube 配置生成,如下图: UDP组播头文件: #ifndef __MULTICAST_H__ #define ...
- UDP 组播---你需要了解这些
先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一 ...
- UDP 组播---基本概念
本文章已收录于: 先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式 ...
- udp组播的应用场景
参考: <TCP/IP详解 卷一> 单播 unicast 在单播的情况下,任意两个主机的通信不会干扰网内其他主机(可能引起争夺共享信道的情况除外) 广播 有时候一个主机要向网上的所有其他主 ...
- 【网络工具】使用 iperf测试 udp组播
文章目录 下载iperf程序 测试组播协议 pc1 客户端发送组播包 pc2 服务端接收组播包 参数说明 -B, --bind host 服务端专用参数 -T, --ttl 客户端专用参数 下载ipe ...
- UDP组播开发测试实例
一 前言 (1)负责项目中组播开发测试工作.期间由于缺乏设备的原因,中间搁置了好久.直到昨天下午临近下班,终于,完成udp组播整个的开发测试工作. 二 开发过程 (1)首先从实现udp协议说起.udp ...
最新文章
- 【spring】动态代理
- Laravel 加载第三方类库的方法
- TensorFlow – A Collection of Resources
- wxPython多线程界面卡死或在不同平台崩溃问题
- opencv精要(3)-win下codelite的opencv配置
- python制作图_Python做图的方法
- php处理ajax post请求超时,php – 如何处理AJAX请求中的会话超时
- pytorch---模型加载与保存(2)
- Go Token获取异常:token contains an invalid number of segments
- 在Win32中管理虚拟内存——举例
- 新版中日交流标准日本语|百度云盘免费下载
- hive 如何将数组转成字符串_HIve字符串函数
- 用junction工具来软件搬家
- SpringMvc标签应用
- java 提交mac地址栏_Mac系统快捷键大全 - 米扑博客
- “DOTA“巨魔战将连续晕眩的概率
- (一)基于用户的协同过滤推荐算法原理和实现
- 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
- 串口服务器 linux,基于Linux的串口服务器设计与实现
- 大数据——把Kafka中的数据传输到HBase中
热门文章
- python详细安装教程-超详细Python与PyCharm安装教程,看这一篇就够了
- 一张图学会python3语法-一张图理清 Python3 所有知识点
- python 下载文件-Python下载文件的11种方式
- python画柱状图-Python绘制精美图表之双柱形图
- python基础教程电子版-Python基础教程(第2版)PDF文档下载
- 1.零基础Java基础教程9天入门
- session 拦截器中获取不到session值_拦截器实现登陆验证
- wordpress 调用css,WordPress折腾记-精简CSS及JS在插件中的调用
- Java ME游戏编程_Java ME游戏编程(第2版)
- 最简单的基于FFmpeg的移动端例子附件:IOS自带播放器