结合侦听器POST请求和阅读器GET请求文件客户端和主机

问题描述

我在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进行套接字编程,但它们似乎还为客户端和主机创建了两个文件。(与我在互联网上找到的文件差不多)

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

关于评论中的查询

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

  2. 例如,通过中断,我的意思是当python代码处于发送模式时,它会等待(暂停)第input()行上的代码 如果董事会在这段时间内尝试发送数据,则python代码将无法收听。

解决方法

因此,目前我已使用Threading完成了任务。 我正在不同的线程上运行两个主要的函数侦听器/发送器,并使用全局值保存数据。

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...