在Qt中實現UDP數據發送與接收需要使用QUdpSocket類。以下是一個簡單的示例代碼:
// 創建一個QUdpSocket對象
QUdpSocket *udpSocket = new QUdpSocket(this);
// 綁定本地端口用于接收數據
udpSocket->bind(QHostAddress::Any, 1234);
// 發送數據
udpSocket->writeDatagram("Hello UDP", QHostAddress::LocalHost, 1234);
// 接收數據
connect(udpSocket, &QUdpSocket::readyRead, this, [=](){
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
qDebug() << "Received datagram: " << datagram;
qDebug() << "From: " << sender.toString() << ":" << senderPort;
});
在上面的代碼中,首先創建了一個QUdpSocket對象udpSocket,并綁定了本地端口1234用于接收數據。然后通過writeDatagram方法發送數據到本地主機的1234端口。接著通過連接readyRead信號來接收數據,從pendingDatagramSize()獲取數據大小,readDatagram方法讀取數據,并打印出接收到的數據以及發送方的IP地址和端口號。