C/C++與Python通信方式淺析

在一項目中需要C/C++與Python之間做交互,C/C++爲網絡層,Python爲數據計算處理層,有多種方式可選:

1. C/C++裏調用Python腳本函數
優點:實現起來最簡單,穩定,可靠
缺點:遷移運行環境後,需要安裝重新部署Python腳本的Python運行環境,非常麻煩,這在終端型軟件(運行於客戶電腦)來說,完全不可接受

由於我要做的軟件需要運行於客戶電腦,不可能還要配置客戶電腦的Python運行環境,因此以上方式放棄。

2. 將Python打包成獨立進程,C/C++於Python實現進程間通信,有以下幾種方式:

(1)SOCKET通信

實現起來比較麻煩,誰當服務端客戶端,用UDP還是TCP,SOCKET阻塞還是非阻塞,發送接收失敗如何處理、如果是TCP還要考慮連接斷開、重連問題

(2)管道
管道只能單向傳輸,雙向傳輸需要創建兩個管道,而且管道也有阻塞非阻塞之分

(3)共享文件
實現相對簡單,需要進程間加鎖,可用信號量實現,防止讀寫同時進行

(4)共享內存
也需要進程間加鎖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章