Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt-qtcsocket流_Qt_Qtcpsocket_Qiodevice_Qdatastream - Fatal编程技术网

Qt-qtcsocket流

Qt-qtcsocket流,qt,qtcpsocket,qiodevice,qdatastream,Qt,Qtcpsocket,Qiodevice,Qdatastream,我的应用程序通过QTcpSocket将对象发送到服务器 客户: void client::sendFile(QString path) { QFile toSend(path); QByteArray rawFile; rawFile = toSend.readAll(); QDataStream out(cl); out >> rawFile; } 服务器: void server::handleClient() { QTcpSo

我的应用程序通过
QTcpSocket
将对象发送到服务器

客户:

void client::sendFile(QString path)
{
    QFile toSend(path);
    QByteArray rawFile;
    rawFile = toSend.readAll();

    QDataStream out(cl);
    out >> rawFile;
}
服务器:

void server::handleClient()
{
    QTcpSocket *curCl = srv->nextPendingConnection();
    QByteArray z;
    QDataStream in(curCl);
    in >> z;

    QFile qwe("test.dat");
    qwe.write(z);
    qwe.close();
}
问题是什么也没发生,但调试控制台告诉我:

QIODevice::write: device not open
QIODevice::read: device not open
。。。但是
QDataStream
对象不允许我设置打开模式!:(
有什么问题吗?

QFile
+
QFile.write
(或
QFile.read
)需要
QFile.open
,请参见示例:

写:

QFile qwe("test.dat");
if(qwe.open(QIODevice::WriteOnly | QIODevice::Text)) {
  qwe.write(z);
  qwe.close();
} else {
  qDebug() << "Error";
}
#include <QTextStream>

...

QFile qwe("test.dat");
if(qwe.open(QIODevice::WriteOnly | QIODevice::Text)){
   QTextStream out(&qwe);
   out << "This file is generated by Qt\n";
   qwe.close();
} else {
  qDebug() << "Error";
}
QFile toSend(path);
if(toSend.open(QIODevice::ReadOnly | QIODevice::Text)) {//Open "read file"
    QByteArray rawFile;
    rawFile = toSend.readAll();

    QDataStream out(cl);
    out >> rawFile;
    toSend.close();//close
}