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

QUdpScoket 组播实现及其中的踩坑点记录

QUdpScoket 组播实现及其中的踩坑点记录

  1. QUdpSocket要想组播需要打开MulticastTtlOption配置项,否则无法生效,亲身踩坑经历
	m_socket=new QUdpSocket(this);m_socket->setSocketOption(QAbstractSocket::MulticastTtlOption,1);
  1. 确定一个组播地址,并且要在socket绑定成功进入BoundState状态时加入组播组中,不然会输出提示:“没有在BoundState时joinMulticastGroup”。
    这里我没有测此时组播是否是正常的,而是根据提示修改了用法,感兴趣的朋友可以尝试一下。
	m_address=QHostAddress("224.0.1.55");connect(m_socket,&QUdpSocket::stateChanged,[this](QAbstractSocket::SocketState state){if(state==QAbstractSocket::BoundState){m_socket->joinMulticastGroup(m_address);  //加入组播}});
  1. 监听地址和端口号,这里也有一个坑
    m_socket->bind(QHostAddress::AnyIPv4,m_clientPort);connect(m_socket,&QUdpSocket::readyRead,[this](){});

可以监听固定的地址,也可以监听任意地址。
端口号有个坑,博主测试的时候用的一台机器,然后两个QUdpSocket都监听了同一个端口,然后始终没有正常,后来才意识到可能是端口号竞争导致的,后来改用两个不同的端口号就正常了。

  1. 读写也踩了一下坑,本来以为write和readAll这些接口都可以用,结果用的时候提示没有打开,数据一直没有发送出去,后面改用了writeDatagram才正常。这一部分有经验的朋友欢迎指正。

您的鼓励就是我最大的动力,请多多点赞收藏加关注,谢谢。
有问题欢迎评论,合作等等都可以。

相关文章:

  • 网站建设参考网站的说明书优秀企业网站模板
  • 河南平顶山网站建设与管理专业网络营销策划的基本原则是什么
  • 包头市做网站视频号直播推广二维码
  • 重庆企业网站推广费用网络优化工程师主要做什么
  • 哪些网站可以找到做药人的信息5118站长工具
  • 做外汇看新闻在什么网站看免费推广网站入口
  • 云原生与人工智能的融合:从弹性架构到智能运维的IT新范式
  • 华为云Flexus+DeepSeek征文 | 掌握高效开发:利用华为云ModelArts Studio在VS Code中配置Cline AI编程助手
  • [AI工具]Fish-speech部署教程(环境搭建记录)
  • spring boot项目整合百度翻译
  • 北斗导航 | 卫星载噪比(C/N₀)的定义与解析
  • 什么是PD快充诱骗取电协议,它有哪些特点及应用场景如XSP01A
  • 【HLS】pragma HLS bundle的用法 AXI接口
  • uniapp小程序在线预览
  • 前端流式接口/Socket.IO/WebSocket的区别和选用
  • 高精度RTK定位导航模块软硬件协同设计
  • Redis大规模Key遍历实战:性能与安全的最佳实践
  • 【网站内容安全检测】之3:获取所有外部域名访问后图像
  • 【邀请】点击邀请链接参加阿里云训练营活动,完成学习送礼品+户外折叠凳,一个小时就能完成
  • UI前端与大数据的深度融合:推动产品设计迭代升级
  • WordPress目录说明
  • Catchadmin 使用相关问题
  • Fisco Bcos学习 - 搭建第一个区块链网络
  • WinForm使用webbrowser加mathjax显示数学公式符号
  • js截取地址详细信息(除去省市区、市市区、自治区市区)
  • Proteus仿真51单片机控制L298N PWM电机调速