阅读量:0
在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地址和端口号。