通過UNIX domain socket?Qt進程如何與正常的Linux進程進行通信?
通過正常的TCP/UDP套接字?
在我的xenomai層,我用xddp來生成一個虛擬端口(/ dev/rtp0),正常的Linux進程可以通過打開這個端口來訪問,並且讀/寫這個流。但是Qt難以使用QFile訪問端口。
通過UNIX domain socket?Qt進程如何與正常的Linux進程進行通信?
通過正常的TCP/UDP套接字?
在我的xenomai層,我用xddp來生成一個虛擬端口(/ dev/rtp0),正常的Linux進程可以通過打開這個端口來訪問,並且讀/寫這個流。但是Qt難以使用QFile訪問端口。
通過UNIX domain socket? 通過正常的TCP/UDP套接字?
答案是:是的,兩者,爲什麼不呢?
Qt進程是正常的進程,他們可以做任何其他的Linux進程可以做的事情。您應該能夠打開一個設備文件,就像您在其他任何進程中打開它一樣。還請注意,沒有人的強迫您使用QFile
;您可以使用正常的fopen
/fread
/mmap
/ioctl
..無論您如何與您的/dev/rtp0
進行交互,但我認爲沒有任何東西阻止您像QFile
一樣處理文件,並在您需要時立即獲取低級文件描述符它來自那個班。
謝謝。我對Qt不是很熟悉,當我打開/ dev/rtp0端口時,我嘗試了QFile和QTextStream,但沒有任何內容被讀取。我也沒有在這個主題上找到很多例子。 –
如果您正在處理Xenomai,那麼您就是一名嵌入式開發人員!如果你想與實時系統內核接口通信,我認爲你應該準備好使用Linux文件句柄。 QFile擁有非常豐富的文檔,並在數千個項目中使用;如果你看起來更難一點,我敢肯定你可以找到一個使用它的例子。 –
可以肯定的是,實時系統可能不會與您交換信息,非常適合「文本流」的想法。但也許我錯了。無論如何,看來你應該分解你的問題一點:編寫一個能夠與你的xddp設備成功對話的Linux程序。同樣的程序也應該和Qt一起工作。 –
我測試了QLocalServer,它的工作原理! Qt進程可以通過UNIX域套接字將數據發送到xenomai進程。
過程是一個過程是一個過程。他們之間沒有區別。運行Qt程序的進程,以及運行其他程序的進程,他們可以使用任何你認爲合適的方法進行通信。套接字?管?消息隊列?而任何其他的[進程間通信](https://en.wikipedia.org/wiki/Inter-process_communication)方法你可以想到的將工作得很好。 –
謝謝。我測試了UNIX域套接字,但是有一些連接問題,所以我懷疑我的工作方向是錯誤的。 –