【问题标题】:Can two windows apps communicate using the command-line?两个 Windows 应用程序可以使用命令行进行通信吗?
【发布时间】:2010-07-22 11:13:38
【问题描述】:

我在一个 Unix 应用程序上工作,其中两个申请人运行并使用命令行相互交谈,即每个人都有一个类似的循环(将其视为伪代码):

bool stop=false;
do
{
  stringstring cmdBuffer;
  cin >> cmdBuffer
  string ret = processCommand(cmdBuffer);
  if(ret.length()==0)
    stop=true;
  else
    cout << ret;
}
while(!stop);

两个 Windows 应用程序不能做同样的事情有什么原因吗?它们是否必须在相同的“命令提示符”上运行或者是控制台应用程序,或者命令行的概念是否超出了能够在我面前看到命令提示符的范围?

作为参考,在我的情况下,一个应用程序将运行另一个应用程序,它们不是两个独立的应用程序独立运行。

【问题讨论】:

  • Mh,任何人都可以指出与命名管道相比的优势吗?我现在没看到...
  • 最简单的就是使用socket,它的通用性和跨平台性,因为每个O/S都有类似的socket API。
  • @Bobby:不,但我什至不知道 Windows 支持它们。 PS什么是“Mh”
  • 这是一种深思熟虑的声音......类似于 Ahm。

标签: c++ windows command-line


【解决方案1】:

我会说重定向输入和输出句柄(SetStdHandle),但使用named pipe 更安全,而且您可以在其上使用同步功能。

您也可以使用全局互斥锁/事件或映射内存,因为它们都是全局命名的,并且易于获取/设置和读取/写入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    相关资源
    最近更新 更多