2023-11-07 16:53:06 +08:00

51 lines
1.3 KiB
C++

#include "udpsender.h"
udpSender::udpSender(QObject *parent)
: QObject{parent}
{
UdpSocket=new QUdpSocket();
UdpSocket->bind(port_receive);
connect(UdpSocket, &QUdpSocket::readyRead,this, &udpSender::readPendingDatagrams);
QEventLoop Loop;
}
void udpSender::GetLocalIP()
{
QString hostName=QHostInfo::localHostName();
qDebug()<<hostName;
QHostInfo hostInfo=QHostInfo::fromName(hostName);
QString localIP="";
QList<QHostAddress> addList=hostInfo.addresses();
foreach (QHostAddress aHost,addList)
{
if(QAbstractSocket::IPv4Protocol==aHost.protocol())
{
localIP=aHost.toString();
qDebug()<<localIP;
}
}
}
int udpSender::SendUDP(QString ID)
{
qDebug()<<QHostAddress::Broadcast;
UdpSocket->writeDatagram(ID.toUtf8(),QHostAddress::Broadcast,port_send);
return 1;
}
void udpSender::readPendingDatagrams()
{
qDebug()<<"Read";
QByteArray datagram;
datagram.resize(UdpSocket->pendingDatagramSize());
QHostAddress peerAddr;
quint16 peerPort;
UdpSocket->readDatagram(datagram.data(),datagram.size(),&peerAddr,&peerPort);
QString str=datagram.data();
QString peer="[From "+peerAddr.toString()+":"+QString::number(peerPort)+"] ";
qDebug()<<peer+str;
}