与已经运行的程序交互

时间:2015-02-03 09:45:24

标签: c++

我正在用C ++编写控制台模拟器。我希望能够#34;跳进去"它正在运行。看看这个简单的例子:

#include <iostream>

int main(){
    std::string input;
    std::cin >> input;
    std::cout << input;
}

我想在服务器上(本地)运行此程序,然后通过SSH连接到此服务器,并以某种方式将输入插入到正在运行的程序中。我也希望能够收到它的输出。这里的要点是,我不能运行多个仿真器实例。它必须一直运行,人们需要能够连接到它。它甚至可能吗?是否有与此主题相关的教程?

2 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。请考虑以下事项:

  1. 创建一个标准的TCP / IP服务器(例如,想想HTTP服务器 - 这正是人们所做的 - 读取一些字符串作为输入,写出一些字符串作为输出)。可以使用&#34; tunneling&#34;通过SSH访问服务器,您可以使用谷歌。您可能还需要为它编写客户端
  2. 使用Web服务器并创建将处理您的数据请求/响应的动态页面。您可以选择许多框架来实现此
  3. 使用IPC(进程间通信)

答案 1 :(得分:1)

你想要的是一个命令处理器添加到你的程序: 在一个单独的线程上,监听linux套接字的命令;这一切都归结为在你的过程中读取套接字,从任何你想要的地方写入它。

请注意,从套接字读取数据可能会非常棘手,并且您不希望等待数据卡住或等待处理时间等待数据到达 - 但这是一个不同的主题:)

我将此机制用于后端进程的负载,但它还没有让我失望。