相關資料:
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));