我有一种情况,我需要一个 python 脚本在一个连续循环中运行,并且我需要从另一个脚本传递参数到它,该脚本将在一个动作发生时运行。
第二个脚本将由使用 cgi 的网站触发,我可以正常工作。连续循环应该接受 cgi 脚本读取的参数(然后通过串行端口发送信息)。
对于特定问题,我不能让 cgi 脚本直接通过串行发送数据,因为每次运行它都会重置串行端口。
我似乎找不到有关这种设置的任何信息。是否有任何方法或库我可以研究这个或更好的方法来处理它?
我有一种情况,我需要一个 python 脚本在一个连续循环中运行,并且我需要从另一个脚本传递参数到它,该脚本将在一个动作发生时运行。
第二个脚本将由使用 cgi 的网站触发,我可以正常工作。连续循环应该接受 cgi 脚本读取的参数(然后通过串行端口发送信息)。
对于特定问题,我不能让 cgi 脚本直接通过串行发送数据,因为每次运行它都会重置串行端口。
我似乎找不到有关这种设置的任何信息。是否有任何方法或库我可以研究这个或更好的方法来处理它?
我会使用套接字连接。本质上,您正在编写一个非常简单的服务器,一次只需要一个连接
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("localhost", 9988))
s.listen(1)
while True:
conn, addr = s.accept()
data = conn.recv(1024)
conn.close()
my_function_that_handles_data(data)
s.accept()
是阻塞调用。它等待连接。然后你阅读连接。在这种情况下,我们假设参数的长度只有 1024 字节。然后我们对从套接字接收到的数据做一些事情并等待另一个连接。
客户端可能如下所示:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("localhost", 9988))
s.sendall('My parameters that I want to share with the server')
s.close()
这样做的好处是,如果将来客户端和服务器不再在同一台机器上运行,那么只需更改"localhost"
为您要访问的实际 IP 地址或域名即可。