大众点评王老五 2022-05-09 10:57 采纳率: 33.3%
浏览 46

在Linux下使用qt开发的聊天软件,为什么一端发向另一端doc文件可以,另一端向这一端发送就没有数据

问题遇到的现象和发生背景

在Linux下使用qt开发的聊天软件,为什么一端发向另一端doc文件可以,另一端向这一端发送就没有数据;但txt文件互传是可以的

问题相关代码,请勿粘贴截图
if(msgType == "receiveFile"){//文件处理
    QString sendUser,receiveUser,fileStr;
    QByteArray fileData;
    in >> sendUser >> receiveUser >> fileStr >>fileData;
    if(!fileData.isEmpty()){   
        QString fileName = QFileDialog::getExistingDirectory();//选择文件目录
        qDebug()<<fileName;
        QFile file(fileName+"/"+fileStr);
        file.open(QIODevice::WriteOnly);
        file.write(fileData);//保存文件
        file.close();
    }
}
运行结果及报错内容

fileData.isEmpty() 在doc文件时是ture,在txt时是false

我的解答思路和尝试过的方法

一直查找不出来错

我想要达到的结果

可以互传doc文件

  • 写回答

4条回答 默认 最新

  • 三雷科技 C/C++领域新星创作者 2022-05-09 11:40
    关注

    txt文本是可见字符的数据流,doc是二进制数据流.
    在发送的时候时候是使用了可见字符数据流发送方式,导致无法接受数据.

    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日