我用labwindow CVI做了个发送float数组的程序,用delphi下的indy10控件可以正常接收。
用QT写的程序数组第一个返回值总是0。我认为
数据已被接收,就是转换的
问题,
上
google搜了下,也没找到合适的解决方法。请大家看看,指点下,谢谢。
- void Widget::processPendingDatagrams()
- {
- qint16 packetsize;
- while (udpSocket->hasPendingDatagrams()) {
- QByteArray ba;
- packetsize=udpSocket->pendingDatagramSize();
- ba.resize(packetsize);
- udpSocket->readDatagram(ba.data(), ba.size());
- if (packetsize!=udpsize)
- {
- return;
- }
- // bool ok;
- // ba = QByteArray::number(ba.toLongLong(&ok,16),2);
- QDataStream datin(&ba,QIODevice::ReadOnly);
- float firstdat;
- datin>>firstdat; //赋值第一个浮点数
- if (!datin.status())
- {
- qDebug()<<"ok" ;
- }
- qDebug()<<firstdat;
- }
- }