根据报错信息,错误发生在以下这一行代码上:

if (!(in >> suggestion)) {

这个错误是因为 QDataStream 并不支持直接使用 >> 运算符从字节数组中读取数据。为了解决这个问题,你可以使用 QDataStream>> 运算符的重载版本来读取数据。

修改代码如下:

QByteArray data = m_socket->readAll();
if (data.isEmpty()) {
    ui->message->append("读取的数据为空");
    return;
}
// 解析服务器返回的数据
QDataStream in(&data, QIODevice::ReadOnly);
in >> suggestion; // 使用重载的 >> 运算符来读取数据
if (in.status() != QDataStream::Ok) {
    ui->message->append("解析服务器返回的数据失败");
    return;
}
ui->message->append(suggestion);
m_socket->close();

这样修改之后,应该就能够正确地读取和解析服务器返回的数据了

QByteArray data = m_socket-readAll; if dataisEmpty ui-message-append读取的数据为空; return; 解析服务器返回的数据 QDataStream in&data QIODeviceReadOnly; QString suggestion; if !in su

原文地址: https://www.cveoy.top/t/topic/iBfW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录