0
Я пытаюсь получить UDP-пакеты от Arduino Uno. Пакеты принимаются компьютером (они видны в wirehark), но не отображаются в моем приложении Qt. Там часть моего UdP класса:UDP-входящие пакеты не отображаются в Qt
#include "udp.h"
Udp::Udp(QHostAddress adr, quint16 pr) : QObject()
{
address.setAddress(adr.toString());
port = pr;
socket = new QUdpSocket();
status = socket->bind(address,port);
connect(socket,SIGNAL(readyRead()), this, SLOT(readUdp()));
}
void Udp::sendUdp(QByteArray out)
{
socket->writeDatagram(out,address,port);
}
QByteArray Udp::readUdp()
{
QByteArray input;
input.resize(socket->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
socket->readDatagram(input.data(),input.size(),
&sender,&senderPort);
return input;
}
socket-> pendingDatagramSize() возвращает 0 (и -1 иногда).
Я не вижу ошибок в коде, единственная причина, по которой вы можете получить готовое чтение и не найти никаких дейтаграмм для чтения, потому что сокет изменен .. но не кажется вашим делом. – Marco