2016-08-07 161 views
1

通过UNIX domain socket?Qt进程如何与正常的Linux进程进行通信?

通过正常的TCP/UDP套接字?

在我的xenomai层,我用xddp来生成一个虚拟端口(/ dev/rtp0),正常的Linux进程可以通过打开这个端口来访问,并且读/写这个流。但是Qt难以使用QFile访问端口。

+2

过程是一个过程是一个过程。他们之间没有区别。运行Qt程序的进程,以及运行其他程序的进程,他们可以使用任何你认为合适的方法进行通信。套接字?管?消息队列?而任何其他的[进程间通信](https://en.wikipedia.org/wiki/Inter-process_communication)方法你可以想到的将工作得很好。 –

+0

谢谢。我测试了UNIX域套接字,但是有一些连接问题,所以我怀疑我的工作方向是错误的。 –

回答

2

通过UNIX domain socket? 通过正常的TCP/UDP套接字?

答案是:是的,两者,为什么不呢?

Qt进程是正常的进程,他们可以做任何其他的Linux进程可以做的事情。您应该能够打开一个设备文件,就像您在其他任何进程中打开它一样。还请注意,没有人的强迫您使用QFile;您可以使用正常的fopen/fread/mmap/ioctl ..无论您如何与您的/dev/rtp0进行交互,但我认为没有任何东西阻止您像QFile一样处理文件,并在您需要时立即获取低级文件描述符它来自那个班。

+0

谢谢。我对Qt不是很熟悉,当我打开/ dev/rtp0端口时,我尝试了QFile和QTextStream,但没有任何内容被读取。我也没有在这个主题上找到很多例子。 –

+0

如果您正在处理Xenomai,那么您就是一名嵌入式开发人员!如果你想与实时系统内核接口通信,我认为你应该准备好使用Linux文件句柄。 QFile拥有非常丰富的文档,并在数千个项目中使用;如果你看起来更难一点,我敢肯定你可以找到一个使用它的例子。 –

+0

可以肯定的是,实时系统可能不会与您交换信息,非常适合“文本流”的想法。但也许我错了。无论如何,看来你应该分解你的问题一点:编写一个能够与你的xddp设备成功对话的Linux程序。同样的程序也应该和Qt一起工作。 –

0

我测试了QLocalServer,它的工作原理! Qt进程可以通过UNIX域套接字将数据发送到xenomai进程。

相关问题