gpt4 book ai didi

c++ - 通过套接字QT发送文件

转载 作者:太空宇宙 更新时间:2023-11-04 13:07:11 28 4
gpt4 key购买 nike

我正在尝试使用 Q++ 通过套接字发送数据文件,但服务器收到一个空数据流,你能帮我吗?

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 套接字。

void initUdp() {
udpSocket = new QUdpSocket(this);
udpSocket->bind(udpPort, QUdpSocket::ShareAddress);
connect(udpSocket, SIGNAL(readyRead()), this, SLOT(processUdpData()));
}

void processUdpData() {
while (udpSocket->hasPendingDatagrams()) {
QByteArray buffer;
buffer.resize(udpSocket->pendingDatagramSize());
udpSocket->readDatagram(buffer.data(), buffer.size());
qDebug() << buffer;
}
}

关于c++ - 通过套接字QT发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41662338/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com