【问题标题】:Php send command to c++ Windows applicationphp 向 c++ Windows 应用程序发送命令
【发布时间】:2016-11-21 04:44:02
【问题描述】:

我很好奇如何做到这一点。我什至不确定要谷歌什么。

如果我有一个网络服务器,我想用一个按钮制作一个 php 页面。单击该按钮时,我在远程计算机上运行的 C++ 应用程序将执行一个功能。

实现此目的最简单的方法是什么?是否已经存在用于此的库?如果不是,我应该用谷歌搜索什么?

谢谢。

【问题讨论】:

  • 远程机器是在服务器上运行,还是单独运行?
  • Google 为:windows communication foundationdcomwin32 launch process on remote computer
  • 如果应用程序是用 C 编写的呢?
  • 使用 PHP exec 调用你的 c++ 程序。 exec 用于执行命令行实用程序。 php.net/manual/en/function.exec.php
  • 远程机器上的操作系统是linux还是windows?你的应用程序是为 windows 还是 linux 编译的?

标签: php c++ communication


【解决方案1】:

使用 PHP 反引号

http://php.net/manual/de/language.operators.execution.php

您可以调用任何可执行文件并将其输出放入变量中。

例如。

$result = `mycppapp.exe`

问候

【讨论】:

  • 我认为问题不是关于启动,而是关于控制已经运行的应用程序?另外,在最初的问题中,它清楚地表明 Windows 主机是远程的。所以反引号不是这里的解决方案。
  • 我不确定这是否适合我。我希望它在已经运行的应用程序中执行代码/功能。不要启动一个全新的流程。
  • 最好的方法是在某个端口上创建一个监听器。然后通过该端口使用 php 发送请求。这将触发该功能。似乎有像 sfml-dev.org 这样的不错的插件,似乎简化了这样的工作
【解决方案2】:

这在一定程度上取决于您的 C++ 应用程序。
但基本思路是这样的。
在您的 html 中定义一个按钮,当单击按钮时 - 您启动 AJAX GET 或 POST 到您的 php 程序(可能有变化,您可以通过表单简单地完成)。
反过来,您的 php 可以启动与远程 Windows 主机的连接,这就是它变得棘手的地方。

  • 您的 Windows C++ 应用程序是否能够通过网络接收命令?换句话说,它有任何 REST API 吗?或者任何其他方式通过 TCP 控制它?
  • 你到底想做什么?只需启动此应用或以某种方式控制它?

如果它有 REST API - 那很简单。您可以从简单的 php curl 开始发送 REST 消息。 如果它没有任何远程控制 API 并且只有 CLI - 那么您将不得不开始使用我认为的远程 powershell。
像这样powershell - execute cmdlet remotely with php

【讨论】:

  • Rest 依赖于 cpprest DLL,所以我的客户并不期待在项目中添加更多的 dll。但是是的,我的 c++ 应用程序可以访问网络。我不知道如何让它连接到 php 页面。也许当在 php 页面上单击按钮时,它可以将变量写入另一个 php 页面。然后每隔一段时间让我的 c++ 应用程序连接到该页面并检查变量。如果为真,它将执行我的功能。那会好还是有更好的方法?
  • 如果您可以开始在您的 C++ 应用程序中侦听套接字 - 那么您可以通过网络接收消息。我不认为另辟蹊径会是一个好的解决方案,因为您将不断地轮询服务器端以查找可能甚至不存在的事件。你可以用 C++ 和 PHP 做一个简单的模型应用程序。 C++ 将开始在某个端口上侦听消息,而 PHP 将发送此类消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 2012-08-14
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2018-07-04
相关资源
最近更新 更多