0
Arduino UnoからUDPパケットを受信しようとしています。パケットはコンピュータによって受信されます(wiresharkで表示されます)が、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