2010-05-18 198 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

相关问题