Связь между двумя скриптами - PullRequest
0 голосов
/ 22 октября 2018

Я создаю встроенную систему с бесконечным скриптом Python (запускается при запуске) и веб-страницей PHP.Веб-страница PHP должна общаться с этим скриптом.

Текущее решение - это файловая связь.PHP записывает в файл некоторую команду, а Python записывает ответ в какой-то другой (или тот же) файл.

Другое возможное решение - это вызов НЕКОТОРОГО бесконечного скрипта Python только при необходимости с PHP $response = shell_exec('./script.py');

Оба решения возможны, но они сложны, и мне нужно, чтобы скрипт Python был бесконечным.

Можно ли как-нибудь открыть какой-либо коммуникационный туннель между двумя независимыми скриптами на одном устройстве Linux?

Как UART, telnet и т. Д. Между двумя устройствами.

Сейчас я ищу решение с помощью связи PHP-PYTHON и PYTHON-PYTHON, но иногда мне это нужно, например, с Bash, TCL,и т. д.

Спасибо (и извините за плохой английский)

Радим

1 Ответ

0 голосов
/ 22 октября 2018

Не зная многого о том, чего вы пытаетесь достичь, я бы выбрал базовое решение http, запустив простой http-сервер с python

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 может просто выполнить GET / POST/ etc .. запросить непосредственно к python и получить ответы 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);

Конечно, это простая заглушка, и ее нужно немного подправить, но она должна дать вамотправная точка.

...