读书人

关于进程间通信(QProcess),该怎么处

发布时间: 2013-08-01 15:23:18 作者: rapoo

关于进程间通信(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都可以),然后再对这个类进行标准写入就可

读书人网 >QT开发

热点推荐