// x.h
QUdpSocket* udp = nullptr; // UDP对象
void createUdpAndSendData(); // 创建UDP对象和发送广播数据
void dropUdp(); // 释放UDP对象
void readData(); // 用来接收其他设备发送的数据
void createUdpAndSendData()
{
// 创建UDP对象
if(udp == nullptr)
{
udp = new QUdpSocket(this);
// 第一种方式,绑定当前默认网卡来发送广播
// udp->bind(52110, QUdpSocket::ShareAddress);
// 第二种方式,绑定指定网卡
QHostAddress ip1("10.10.13.132");
udp->bind(ip1, 52110, QUdpSocket::ShareAddress);
connect(udp, &QUdpSocket::readyRead, this, &MyWifiSelect::readSocketData);
}
// 发送广播
QByteArray data = "Hello,I'm on line!";
udp->writeDatagram(data.data(), data.size(), QHostAddress::Broadcast, 52110);
}
void dropUdp()
{
if (udp)
{
delete udp;
udp = nullptr;
}
}
void readData()
{
while (udp->hasPendingDatagrams())
{
QNetworkDatagram data = udp->receiveDatagram();
QString s = data.data();
}
}