首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

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

热点排行