2010-05-18 199 views
1

我正在考慮在C++中構建一個應用程序,該應用程序將解析網絡中的文本並創建一些統計結果。我希望這些結果能夠在外部應用程序中實時提供。外部應用程序(我的代碼無法訪問,但可以要求付費 - 自定義添加)然後需要一些代碼來讀取和使用這些結果。如何連接兩個應用程序

我想知道在速度和易用性方面互連兩個應用程序的最佳方式是什麼。我正在考慮:

disk I/O (slow) 

a Windows service 

a DLL 

a web service 

a web page 

也許我錯過了一個更好的解決方案?謝謝。

Update : there is an additional need to know how long a data request may take at worst. 

回答

2

有許多IPC機制可供選擇(套接字,共享內存,管道......)。我猜「最好的選擇」在很大程度上取決於另一個應用程序是如何構建的。你的自定義擴展會花費多少錢。

我不知道很多你的環境,但它可能是值得看看Boost.Interprocess中: http://www.boost.org/doc/libs/1_43_0/doc/html/interprocess.html

3

Windows服務將是明智的,但將仍然需要與其他應用程序進行通信,這就是所謂的IPC,靠近窗戶上描述here,命名管道很簡單&靈活,文件映射是強大的。

另一種方法是在中間粘貼一個數據庫?

+0

好點。這也讓我意識到,我需要對通信過程的速度有一些控制。例如,Windows消息可能會排隊並需要時間才能到達其收件人。我會更新o.p.也增加這個限制。 我想知道數據庫會帶來多大的開銷...... – sevaxx 2010-05-18 18:29:29

+0

數據庫有一些磁盤讀/寫的東西,可能會很慢。 – Wartin 2010-05-18 18:58:54

5
  • 套接字?
  • 共享內存?
  • RAM磁盤?
  • TCP/IP?
  • Windows消息?
  • (其他應用程序的)命令行參數?

其他應用程序必須支持哪些接收數據的方法?

+0

AFAIK其他應用程序只接收來自鍵盤的數據。命令行參數不會執行任何操作,因爲實時需要持續輸入總和,並且外部應用程序必須已經運行。 – sevaxx 2010-05-18 18:38:48

相關問題