【问题标题】:Communication between two scripts两个脚本之间的通信
【发布时间】:2019-03-26 06:28:29
【问题描述】:

我正在使用无限 Python 脚本(在启动时启动)和 PHP 网页创建嵌入式系统。 PHP 网页必须与该脚本通信。

当前的解决方案是基于文件的通信。 PHP 将某些命令写入文件,而 Python 将响应写入其他(或相同)文件。

另一种可能的解决方案是仅在需要时使用 PHP $response = shell_exec('./script.py');调用一些非无限 Python 脚本

这两种解决方案都是可能的,但它们很复杂,我需要 Python 脚本是无限的。

有什么办法可以在同一linux设备上的两个独立scipt之间打开一些通信隧道?

像两个设备之间的 UART、telnet 等。

现在我正在寻找使用 PHP-PYTHON 和 PYTHON-PYTHON 通信的解决方案,但有时我需要这个,例如 Bash、TCL 等。

谢谢(抱歉英语不好)

萝卜

【问题讨论】:

  • 我可以建议你的代码基于一种服务器端语言还是有理由使用两种不同的语言?
  • WebSockets 可能对你有帮助吗?
  • 我需要这个用于我手中的真实硬件设备盒。 Python 脚本管理 IO 引脚一个 PHP 显示一些关于它的信息。所以不能用一个脚本来做。感谢 Inter-process_communication 一个 WebSockets。我会看的。
  • 也许我会试试 RAM 中的文件。所以我仍然会使用基于文件的通信,但该文件将在 RAM 中。使用基于经典文件的我担心写入过多会破坏闪存。

标签: php python communication


【解决方案1】:

在不了解您要实现的目标的情况下,我会选择基本的 http 解决方案,使用 python 启动一个简单的 http 服务器

import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

.... do something with the http request and send the response

然后 php 脚本可以简单地直接向 python 发出一些 GET/POST/etc.. 请求,并获取 http 响应,例如通过 cURL:

// create curl resource
$ch = curl_init();

// set url
curl_setopt($ch, CURLOPT_URL, "localhost");

// set port
curl_setopt($ch, CURLOPT_PORT, 8000);

//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);

当然,这是一个简单的存根,应该稍作调整,但它应该为您提供一个起点。

【讨论】:

  • 谢谢例如。但这又有点复杂。并且该端口将为所有连接到我的设备的其他人开放,不是吗?
  • 那么你应该将http服务器绑定到本地主机,并将端口放在防火墙后面(过滤非本地主机连接),然后只处理你自己主机转发的请求
猜你喜欢
  • 2013-04-19
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 2012-12-20
  • 1970-01-01
相关资源
最近更新 更多