Qt-報錯 QNativeSocketEngine::joinMulticastGroup() was not called in QAbstractSocket::BoundState


相關資料:

https://blog.csdn.net/xinguhong4645/article/details/99581508

https://blog.csdn.net/wg8826/article/details/80818673

 

CSDN:編寫Qt udpsocket網絡編程組播時候提示
:報錯 QNativeSocketEngine::joinMulticastGroup() was not called in QAbstractSocket::BoundState
原因:需要將端口號選擇可以復用。修改代碼如下

udpsocket->bind(QHostAddress::AnyIPv4,8888);
1
改為

//綁定
udpsocket->bind(QHostAddress::AnyIPv4,8888,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint);
1
2
即可。

-------------------------------------------------------------------------

QUdpSocket *revWBudp;

revWBudp = new QUdpSocket;

//綁定本地端口

revWBudp->bind(QHostAddress::AnyIPv4, multicastPort, QUdpSocket::NotShareAddress);

//加入組播組

bool result = revWBudp->joinMulticastGroup(QHostAddress(multicastIP));//這行報錯

QUdpSocket::NotShareAddress
改為
QUdpSocket::ShareAddress即可
結果如下:
QUdpSocket *revWBudp;

revWBudp = new QUdpSocket;

//綁定本地端口

revWBudp->bind(QHostAddress::AnyIPv4, multicastPort, QUdpSocket::ShareAddress);

//加入組播組

bool result = revWBudp->joinMulticastGroup(QHostAddress(multicastIP));

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM