如何跨语言在多个应用程序之间建立通信

时间:2013-06-03 19:24:32

标签: c++ sockets vb6 synchronization communication

我目前有两个与同一操作相关的程序。程序A(用vb6编写)是一种“控制器”,可以打开设备并启动程序B(用C ++编写),启动设备数据的集合。现在,程序B需要一种方法将一些MINOR数据报告回程序A.程序A还需要监视某些额外的数据,如果信号1触发,则需要让程序B知道。建立这种沟通的最佳方式是什么?显而易见的方法是每个程序读取和写入的文本/二进制文件(没有接近最佳方式),并且我还考虑使用UDP进行通信,因为机器将在封闭的网络上。但是,我不确定我应该怎么做呢?

4 个答案:

答案 0 :(得分:2)

命名管道是一种优雅的解决方案,但你甚至可以像你说的那样使用文件。

http://support.microsoft.com/kb/177696

How to work with named pipes (C++ server , C# client)

答案 1 :(得分:2)

还有其他选择: 剪贴板,COM,数据复制,DDE,文件映射,Mailslots,管道,RPC,Windows套接字

请参阅此处:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx

答案 2 :(得分:0)

你是如何打开设备并启动程序B的?

我会使用相同的频道进行额外的沟通,因为这条线路已经存在且工作正常(因为节目B已经开始)

答案 3 :(得分:0)

就个人而言,我会选择使用标准协议建立通信并传输数据,如FTP或HTTP。这样,当您的程序A或程序B发生变化(或者连接介质换成另一个)时,您仍然可以拥有定义明确且易于实现的通信协议。网络堆栈可用于各种CPU和操作系统,FTP(或TFTP)易于实现。