QByteArray data = m_socket-readAll; if dataisEmpty ui-message-append读取的数据为空; return; 解析服务器返回的数据 QDataStream in&data QIODeviceReadOnly; QString suggestion; if !in su
根据报错信息,错误发生在以下这一行代码上:
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();
这样修改之后,应该就能够正确地读取和解析服务器返回的数据了
原文地址: https://www.cveoy.top/t/topic/iBfW 著作权归作者所有。请勿转载和采集!