已解决:QUdpSocket::joinMulticastGroup() called on a QUdpSocket when not in QUdpSocket::BoundState

在QT中使用QUdpSocket时提示QUdpSocket::joinMulticastGroup() called on a QUdpSocket when not in QUdpSocket::BoundState

在网上查了所谓的解决办法都不管用,尝试什么将QUdpsocket::NotShareAddress改为QUdpSocket::ShareAddress都不行,最后发现是因为自己在加入组播前没有绑定端口号导致的错误,然后总结出了下面两个可能出现该错误的原因



原因

我总结了两个可能出错的原因有两种(并非一定就是这两种错误):

(1)绑定的协议不是ipv4协议,因为目前使用的还是ipv4;所以确保为:

 sock.bind(QHostAddress::AnyIPv4,端口号);

(2)是否已经绑定端口,在未绑定端口的情况下是加入不了组播的;因此需要先绑定一个端口再去加入组播地址
(个人感觉第二种出错的几率可能高一点,所以一定要检查代码是否已经绑定了端口再加入组播!!!)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值