合并侦听器(POST 请求)和 Reader(GET 请求)文件客户端和主机

Combine Listener (POST request) and Reader (GET request) files client and host

我在 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 发送数据,它会显示在船上。

但我想合并这些文件,这样如果数据是 sent/received,它就不会相互中断或将它们放在循环中。 就像一个人会设置一个 mqtt 代理或 blynk(不会使用这些)。

那么我应该从什么方向开始寻找。我曾尝试在 python 上进行套接字编程,但他们似乎也为客户端和主机创建了两个文件。(至少是我在互联网上找到的那些)

那么这里最合适的方法是什么。

关于评论中的查询

  1. 通过组合我可以看到双方共享的输出和访问数据。

  2. 我的意思是中断,例如当 python 代码处于发送模式时,它会等待(暂停)行 input() 上的代码 如果电路板在此期间尝试发送数据,python 代码将无法收听它。

所以目前我使用线程来完成任务。 我是 运行 两个主要函数 listener/sender 在不同线程上并使用全局值保存数据。

虽然不多,但这是诚实的工作。

也许在功能方面,有人会找到更好的方法。