调用运行程序并在php中获得响应
Call running program and get response in php
我创建了一个需要用户输入的c++程序。我想从php调用这个程序,并在我的网页上使用程序的输出。由于c++程序需要很多时间来初始化,我想让它在后台运行,并在调用时响应php脚本。然后php脚本应该获得输出并将其显示在我的页面上。这能做到吗?
当然,这是可以做到的,但是您可能需要编写两个C或c++程序,一个在后台运行,另一个在每次需要一些信息时由PHP程序启动。尽管有可能只使用PHP提出一种方案,但我并没有对此进行过多的研究。无论哪种方式,我都将对"请求信息"的进程(PHP或C)使用术语"请求者",对实际响应信息的进程使用术语"服务进程"。
为了在请求者和后台进程之间通信,你需要使用一些IPC(进程间通信)机制。有很多选择。在这种情况下,命名管道听起来像是一个合理的解决方案,并且在大多数操作系统中都可以使用命名管道(以及抽象在Boost库中,例如,如果需要的话,允许更可移植的解决方案)。
所以,基本原则是:- 后台服务进程启动(系统启动时自动)。
- 服务进程创建命名管道(在双向模式下,或两个管道,每个方向一个-我在下面使用单个管道-根据需要调整"输入管道"answers"输出管道")
- 当需要时,请求进程打开命名管道并发送请求消息。
- 服务进程返回带有请求信息的消息。 请求者关闭管道。
- 根据需要重复步骤2-5。
- 后台进程关闭,并作为其中的一部分破坏命名管道(在系统关闭时自动)。
当然,以上7个步骤中的每一个都有许多"小步骤",但总的来说,这几乎是你想要做的。
相关文章:
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- C++ 信号和插槽不工作:插槽不响应事件
- NodeJs 服务器充斥着 UDP 广播,不发送响应
- C++关于ENUM的问题。我得到的响应比枚举列表大
- 将加密消息从 php 发送到 C++ 应用程序,然后使用 CryptoPP 进行解密
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 cpprest (Casablanca) 返回 PDF 响应
- 为什么当通过 TCP 发送的消息速率增加时,请求-响应消息对的延迟会降低?
- 如何使用从处理程序调度的最终回调将响应异步返回给调用方on_read?
- 获取加密的正文响应WinHttp HTTPS
- QtConcurrent - 在发布到 UI 线程的数千个结果中保持 GUI 响应
- PHP Profiler语言 - 使用 C++ 从 PHP 扩展获取客户端 IP 和 URL
- 同步读取多个 TCP 响应
- HTTP 响应格式不正确?
- 如何使用软化工具包从 OPC UA 服务器异步读取操作回调中的数据值响应中获取 NodeId 详细信息
- Nginx RTMP与InstagramLive-PHP不起作用
- HTTP帖子,无需等待响应
- 问题导致程序停止响应,并且姓氏未正确打印
- 调用运行程序并在php中获得响应
- C++ 将数据发送到 PHP 并处理响应