Qt UDP 广播
发送方
timer = new QTimer(this);//创建一个定时器,定时广播数据
udpSocket = new QUdpSocket(this);//创建一个 udp socket
QByteArray datagram = "Broadcast message " + QByteArray::number(messageNo);
udpSocket->writeDatagram(datagram.data(), datagram.size(),
QHostAddress::Broadcast, 4444);//组装数据并发送到广播地址和指定端口
接受方
udpSocket = new QUdpSocket(this);//创建一个udp socket
udpSocket->bind(4444);//从广播指定端口号 接受数据
connect(udpSocket, SIGNAL(readyRead()),
this, SLOT(processPendingDatagrams()));
void processPendingDatagrams
{
while (udpSocket->hasPendingDatagrams())
{
QNetworkDatagram netWorkObj = udpSocket->receiveDatagram();
qDebug() << netWorkObj.senderPort()
<< netWorkObj.senderAddress()
<< netWorkObj.data().data();//获取数据发送方的端口号和IP地址
}
}
推荐链接 Qt 中文文档