1
Q ++でソケットを介してデータファイルを送信しようとしていますが、サーバーが空のデータストリームを受信しました。ソケットを介してファイルを送信するQT
QFile file("/Users/mathieu/Documents/test.wav");
if(!file.exists()) qDebug() << "not found file";
file.open(QIODevice::ReadWrite);
QByteArray data;
data.append(file.readAll());
file.close();
QUdpSocket udpsock;
udpsock.writeDatagram(data, QHostAddress::Any, 1441);
と受信用:
QUdpSocket udp;
QByteArray buffer;
buffer.resize(udp.pendingDatagramSize());
QHostAddress sender;
qint16 senderPort;
udp.readDatagram(buffer.data(), buffer.size());
qDebug() << buffer;
しかし、バッファが空である...私はなぜ理解していません。
udpソケットレシーバーをポートに接続しているように見えませんか? – tinkertime
レシーバーのコードは信号 'readyRead()'のスロット機能にありますか?また、受信データグラムがあるかどうかを確認する必要があります: 'while(udp.hasPendingDatagrams()){...'あなたのソケットはポートでバインドされている必要があります: 'udp.bind(1441、QUdpSocket :: ShareAddress); ' –