问题描述
我在python中有两个文件,用于发送和接收数据到连接到本地网络的nodemcu。
Sender.py
import urllib.request
url = "http://Device IP"
# Example usage
while True:
data = input("Enter Data:")
data = urllib.parse.urlencode({"plain": data})
data = data.encode('ascii')
urllib.request.urlopen(url + "/SEND",data)
Listener.py
import urllib.request
url = "http://Device IP"
# Example usage
n = urllib.request.urlopen(url + "/LISTEN").read()
n = n.decode("utf-8") # convert raw html bytes format to string
我同时分别运行两个脚本,它们可以正常工作。 如果从板上发送了一些数据,它将显示在listener.py输出中 如果我从sender.py发送数据,它就会显示在板上。
但是我想合并这些文件,以便在发送/接收数据时不会相互干扰或将它们放入循环中。 就像会设置一个mqtt经纪人或blynk(将不会使用它们)一样。
所以我应该开始寻找什么方向。我曾尝试使用python进行套接字编程,但它们似乎还为客户端和主机创建了两个文件。(与我在互联网上找到的文件差不多)
那么这里最合适的方法是什么。
关于评论中的查询
-
通过合并,我可以看到双方共享的输出和访问数据。
-
例如,通过中断,我的意思是当python代码处于发送模式时,它会等待(暂停)第
input()
行上的代码 如果董事会在这段时间内尝试发送数据,则python代码将无法收听。
解决方法
因此,目前我已使用Threading完成了任务。 我正在不同的线程上运行两个主要的函数侦听器/发送器,并使用全局值保存数据。
虽然不多,但这是诚实的工作。
也许在功能上,有人会找到更好的方法。