关于进程间通信(QProcess),该怎么处理
关于进程间通信(QProcess)求教:为了实现2进程之间通信,用QProcess在服务端发送数据,如何在接收端读取数据;
关于进程间通信(QProcess)
求教:
为了实现2进程之间通信,用QProcess在服务端发送数据,如何在接收端读取数据;
服务端发送代码:
pro = new QProcess(this);
...
int number = pro->write(line->text().toLatin1().constData(), line->text().length());
[解决办法]int number = pro->write(line->text().toLatin1().constData(), line->text().length());
number是否等于line->text().length()呢?
可能是-1;即write不成功;
这样(代码)应该是不行的
QProcess::start(......);
启动某个exe,如果这个exe有向stdout/stderr输入字符,则可以用另个进程可以循环去读stdout/stderr的输入
上面代码,并没有启动QProcess,可能是write不成功的原因
[解决办法]QPROCESS只能单向通信,子进程发向主进程用:
connect(pro, SIGNAL(readyRead()), this, SLOT(readFromClient()));
而且在子进程中要定义一个继承QIODevice的类(QFILE都可以),然后再对这个类进行标准写入就可