QUdpsocket最常用的用法:
先bind()到一个端口,然后调用writeDatagram()和readDatagram()传输数据
尤其要记得关闭防火墙
在构造函数中:
socket=newQUdpSocket(this);
socket->bind(QHostAddress("192.168.2.100"),12345);//绑定端口号12345
connect(socket,SIGNAL(readyRead()),this,SLOT(readyReadData()));
在发送数据函数中
QByteArrayData;
char dataD[]={0xAA,0x01,0x01,0x23,0x45,0x67};
Data=QByteArray::fromRawData(dataD,sizeof(dataD));//发送16进制数
socket->writeDatagram(Data, QHostAddress("192.168.2.102"), 2011);
在接受数据函数中
QByteArraybuffer;
buffer.resize(socket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
socket->readDatagram(buffer.data(), buffer.size(),
&sender, &senderPort);
qDebug() << "Message from: " << sender.toString();
qDebug() << "Message port: " << senderPort;
qDebug() << "Message: " << buffer;