Python 一种让树莓Pi等待命令的方法
我已经到处寻找这个问题的答案,但我真的不知道该搜索什么,在哪里寻找。我主要做过基本的web开发,所以我不熟悉如何让不同计算机上的应用程序相互通信 我想知道最好、最有效的方法,让树莓皮坐在同一个本地网络上,等待来自另一台计算机的命令 我启动了一个小项目,当同一个本地网络上的计算机发送命令时,让Pi的摄像机开始和停止记录。我目前有一个小的python脚本,当单击两个不同的按钮时,它会开始和停止将视频录制到文件中,但是我想将按钮触发器更改为来自另一台计算机的命令。Pi可以一次闲置几天,然后一个命令进入记录。那么,实现这一目标最有效的方法是什么呢。我有一些想法/问题,我想知道每个人的想法Python 一种让树莓Pi等待命令的方法,python,linux,networking,webserver,raspberry-pi,Python,Linux,Networking,Webserver,Raspberry Pi,我已经到处寻找这个问题的答案,但我真的不知道该搜索什么,在哪里寻找。我主要做过基本的web开发,所以我不熟悉如何让不同计算机上的应用程序相互通信 我想知道最好、最有效的方法,让树莓皮坐在同一个本地网络上,等待来自另一台计算机的命令 我启动了一个小项目,当同一个本地网络上的计算机发送命令时,让Pi的摄像机开始和停止记录。我目前有一个小的python脚本,当单击两个不同的按钮时,它会开始和停止将视频录制到文件中,但是我想将按钮触发器更改为来自另一台计算机的命令。Pi可以一次闲置几天,然后一个命令进入
- 我需要安装web服务器吗李>
- 有没有可能让pi和 它在局域网上唤醒了吗李>
- 我应该打开一个插座,把一个环放在插座上吗 python脚本以不断检查消息?这是能量吗 高效的李>
- 我应该从计算机发送一条消息,用shell脚本启动python脚本,然后发送start和stop命令吗
import socket
host="0.0.0.0"
port=43210 #or some high number unused port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
client,address = s.accept()
#this wont run until after something hits that port
然后,在另一台计算机上,转到
http://ip.of.raspery.pi:43210
这将尝试打开端口。。。该网页不会加载,但pi应该做任何下面的评论
或者你也可以这样做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
在pi上运行它。。。(或者更好地通过apache提供服务……但这是另一个问题)
然后您可以导航到
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这一次,您将看到一条状态消息
然后,在另一台计算机上,转到
http://ip.of.raspery.pi:43210
这将尝试打开端口。。。该网页不会加载,但pi应该做任何下面的评论
或者你也可以这样做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
在pi上运行它。。。(或者更好地通过apache提供服务……但这是另一个问题)
然后您可以导航到
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这一次,您将看到一条状态消息
然后,在另一台计算机上,转到
http://ip.of.raspery.pi:43210
这将尝试打开端口。。。该网页不会加载,但pi应该做任何下面的评论
或者你也可以这样做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
在pi上运行它。。。(或者更好地通过apache提供服务……但这是另一个问题)
然后您可以导航到
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这一次,您将看到一条状态消息
然后,在另一台计算机上,转到
http://ip.of.raspery.pi:43210
这将尝试打开端口。。。该网页不会加载,但pi应该做任何下面的评论
或者你也可以这样做
from flask import Flask
app = Flask(__name__)
@app.route("/start")
def start():
return "OK START"
@app.route("/stop")
def stop():
return "OK STOP!"
if __name__ == "__main__":
app.run("0.0.0.0",port=8080)
在pi上运行它。。。(或者更好地通过apache提供服务……但这是另一个问题)
然后您可以导航到
http://raspberry.pi.ip:8080/start
http://raspberry.pi.ip:8080/stop
这一次,您将看到一条状态消息不幸的是,我只知道第二种最有效的方法,因此无法回答您的问题;\u;第二种最有效的方法可以……不幸的是,我只知道第二种最有效的方法,所以无法回答您的问题;\u;第二种最有效的方法可以……不幸的是,我只知道第二种最有效的方法,所以无法回答您的问题;\u;第二种最有效的方法可以……不幸的是,我只知道第二种最有效的方法,所以无法回答您的问题;\u;第二个最有效的方法是…另外,
导入套接字
谢谢@JoranBeasley,哪一行表示它在有东西连接到它之前不会运行?是s.listen(1)
?接受是阻止。。。listen告诉您队列中要允许多少个挂起的连接(基本上),如果您想做的不仅仅是继续(即使用某种命令),那么您还需要做更多的工作,还有,import socket
Thank@JoranBeasley,哪一行表示它在有东西连接到它之前不会运行?是s.listen(1)
?接受是阻止。。。listen告诉您队列中要允许多少个挂起的连接(基本上),如果您想做的不仅仅是继续(即使用某种命令),那么您还需要做更多的工作,还有,import socket
Thank@JoranBeasley,哪一行表示它在有东西连接到它之前不会运行?是s.listen(1)
?接受是阻止。。。listen告诉您队列中要允许多少个挂起的连接(基本上),如果您想做的不仅仅是继续(即使用某种命令),那么您还需要做更多的工作,还有,import socket
Thank@JoranBeasley,哪一行表示它在有东西连接到它之前不会运行?是s.listen(1)
?接受是阻止。。。listen告诉您队列中允许多少个挂起的连接(基本上),如果您想做的不仅仅是继续(即有某种命令),那么您将有更多的工作要做