在Qt中实现UDP数据发送与接收需要使用QUdpSocket类
在Qt中实现UDP数据发送与接收需要使用QUdpSocket类。以下是一个简单的示例代码:
//创建一个QUdpSocket对象
QUdpSocket*udpSocket=newQUdpSocket(this);
//绑定本地端口用于接收数据
udpSocket->bind(QHostAddress::Any,1234);
//发送数据
udpSocket->writeDatagram("HelloUDP",QHostAddress::LocalHost,1234);
//接收数据
connect(udpSocket,&QUdpSocket::readyRead,this,[=](){
QByteArraydatagram;
datagram.resize(udpSocket->pendingDatagramSize());
QHostAddresssender;
quint16senderPort;
udpSocket->readDatagram(datagram.data(),datagram.size(),&sender,&senderPort);
qDebug()<<"Receiveddatagram:"<<datagram;
qDebug()<<"From:"<<sender.toString()<<":"<<senderPort;
});
在上面的代码中,首先创建了一个QUdpSocket对象udpSocket,并绑定了本地端口1234用于接收数据。然后通过writeDatagram方法发送数据到本地主机的1234端口。接着通过连接readyRead信号来接收数据,从pendingDatagramSize()获取数据大小,readDatagram方法读取数据,并打印出接收到的数据以及发送方的IP地址和端口号。
版权声明
本文仅代表作者观点,不代表博信信息网立场。