最近学习了组播的应用。组播传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它能提高了效率。减少了骨干网络出现拥塞的可能性。

因为最近在看视频传输,对于一个客户端的视频,如果通过组播的方式传输给其他端,那么对于传输效率和处理速度是有非常大的帮助的,所以组播在一些特定领域起到了很大的帮助。

那么在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组播的应用相关推荐

  1. Qt udp组播Qt udp组播

    代码部分: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> ...

  2. Qt网络编程-简易版UDP组播通信入门Demo(5)

    Qt网络编程-简易版UDP组播通信入门Demo(5)

  3. ios 接收 c# socket udp 组播

    最近用wcf 服务 给ios和安卓做接口,做了几个ios的项目  用udp 组播 让ios多终端接收和刷新方法 做一个简单的小例子会把工程给大家下载的 c#代码:netSocketUDP.rar io ...

  4. 基于stm32f107 stm32cube 和 LWIP 协议实现 udp 组播通信

    最近在做一个基于stm32f107 实现 UDP 组播通信的项目,项目基于 stm32cube 配置生成,如下图: UDP组播头文件: #ifndef __MULTICAST_H__ #define ...

  5. UDP 组播---你需要了解这些

    先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一 ...

  6. UDP 组播---基本概念

     本文章已收录于: 先来了解下UDP UDP 是UserDatagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式 ...

  7. udp组播的应用场景

    参考: <TCP/IP详解 卷一> 单播 unicast 在单播的情况下,任意两个主机的通信不会干扰网内其他主机(可能引起争夺共享信道的情况除外) 广播 有时候一个主机要向网上的所有其他主 ...

  8. 【网络工具】使用 iperf测试 udp组播

    文章目录 下载iperf程序 测试组播协议 pc1 客户端发送组播包 pc2 服务端接收组播包 参数说明 -B, --bind host 服务端专用参数 -T, --ttl 客户端专用参数 下载ipe ...

  9. UDP组播开发测试实例

    一 前言 (1)负责项目中组播开发测试工作.期间由于缺乏设备的原因,中间搁置了好久.直到昨天下午临近下班,终于,完成udp组播整个的开发测试工作. 二 开发过程 (1)首先从实现udp协议说起.udp ...

最新文章

  1. 【spring】动态代理
  2. Laravel 加载第三方类库的方法
  3. TensorFlow – A Collection of Resources
  4. wxPython多线程界面卡死或在不同平台崩溃问题
  5. opencv精要(3)-win下codelite的opencv配置
  6. python制作图_Python做图的方法
  7. php处理ajax post请求超时,php – 如何处理AJAX请求中的会话超时
  8. pytorch---模型加载与保存(2)
  9. Go Token获取异常:token contains an invalid number of segments
  10. 在Win32中管理虚拟内存——举例
  11. 新版中日交流标准日本语|百度云盘免费下载
  12. hive 如何将数组转成字符串_HIve字符串函数
  13. 用junction工具来软件搬家
  14. SpringMvc标签应用
  15. java 提交mac地址栏_Mac系统快捷键大全 - 米扑博客
  16. “DOTA“巨魔战将连续晕眩的概率
  17. (一)基于用户的协同过滤推荐算法原理和实现
  18. 吃透Chisel语言.31.Chisel进阶之通信状态机(三)——Ready-Valid接口:定义、时序和Chisel中的实现
  19. 串口服务器 linux,基于Linux的串口服务器设计与实现
  20. 大数据——把Kafka中的数据传输到HBase中

热门文章

  1. python详细安装教程-超详细Python与PyCharm安装教程,看这一篇就够了
  2. 一张图学会python3语法-一张图理清 Python3 所有知识点
  3. python 下载文件-Python下载文件的11种方式
  4. python画柱状图-Python绘制精美图表之双柱形图
  5. python基础教程电子版-Python基础教程(第2版)PDF文档下载
  6. 1.零基础Java基础教程9天入门
  7. session 拦截器中获取不到session值_拦截器实现登陆验证
  8. wordpress 调用css,WordPress折腾记-精简CSS及JS在插件中的调用
  9. Java ME游戏编程_Java ME游戏编程(第2版)
  10. 最简单的基于FFmpeg的移动端例子附件:IOS自带播放器