Python MQTT 实验

Two client:

  • Pub_1.py

    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    def on_connect(client, userdata, flags, rc):
        print("connected with result code "+str(rc))
    
    def on_publish(client, userdata, mid):
        print("Publish au/csie/5/9/5912/temperture", )
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_publish = on_publish
    
    client.connect("iot.eclipse.org", 1883, 60)
    
    while True:
        try:
            with open("C:\\Users\\86390\\Desktop\\test_s.txt", "r") as f:
                data = f.readlines()
            # data = random.randint(24, 28)
            # client.publish("au/csie/5/9/5912/tempeture", str(data)+"C")
            print(len(str(data)))
            time.sleep(2)
        except KeyboardInterrupt:
            print("EXIT")
            client.disconnect()
            sys.exit(0)
  • Sub_1.py

    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code"+str(rc))
        client.subscribe("/inode/mychannel")
    
    def on_message(client, userdata, msg):
        print(len(str(msg.payload))/1024/1024)
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    
    client.connect("127.0.0.1", 1883, 60)
    client.loop_forever()

Publisher and Client:

  • Pub_2.py

    import paho.mqtt.publish as publish
    import time
    
    def transmitMQTT(strMsg):
        strMqttBroker = "localhost"
        # strBroker = "127.0.0.1"
        strMqttChannel = "/inode/mychannel"
        print(len(str(strMsg)))
        publish.single(strMqttChannel, strMsg, hostname=strMqttBroker)
    
    if __name__ == ‘__main__‘:
        while True:
            transmitMQTT("a"*1024*1024*40)
            time.sleep(0.1)
    
            print (time.time())
  • Sub_2.py

    import paho.mqtt.client as mqtt
    import time
    import sys
    import random
    
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code"+str(rc))
        client.subscribe("/inode/mychannel")
    
    def on_message(client, userdata, msg):
        print(len(str(msg.payload))/1024/1024)
    
    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    
    client.connect("127.0.0.1", 1883, 60)
    client.loop_forever()

坑:

  • 在Windows上正常通信的两个Client, 在虚拟机上sub端接收不到,可能是DNS网管问题。
  • 两个Client通信,必须搭建中间的broker, 但是如果是一个pub, 一个sub,则直接通过本地主机作为broker即可。

原文地址:https://www.cnblogs.com/ryu-manager/p/9347867.html

时间: 2024-11-09 09:35:53

Python MQTT 实验的相关文章

Python程序设计实验报告二

安徽工程大学 Python 程序设计 实验报告 班级:  物流192   姓名:刘晨晨     学号:3190505214 日期:  3.21    指导教师:修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述: 根据圆的半径计算圆面积,半径为

Python程序设计实验二

Python程序设计实验二 Python程序设计实验安徽工程大学   班级:物流192    姓名:陆园林    学号:3190505223 日期:2020年3月22日       指导教师:修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件]   PC机或者远程编程环境   [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问

PYTHON程序设计实验2

安徽工程大学 Python程序设计 实验报告 班级   物流191   姓名 邹缕 学号3190505117 成绩 日期     2020.3.22      指导老师       修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述: 根据圆的

Python程序设计实验报告二:顺序结构程序设计(验证性实验)

安徽工程大学 Python程序设计 实验报告 班级   物流192   姓名  冯非凡  学号3190505208 成绩 日期     2020.3.22    指导老师       修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述: 根据圆

Python程序设计实验报告二:顺序结构程序设计

安徽工程大学 Python程序设计实验报告 班级 物流192 姓名 周立 学号 3190505227 成绩 日期 3月4日 指导老师 修宇 实验二 顺序结构程序设计(验证性实验) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述: 根据圆的半径计算圆面积,半径为25.请编写并运行如下代码

Python程序设计实验报告(二)

安徽工程大学 Python程序设计 实验报告 班级   物流192   姓名  韩婧  学号3190505239 成绩 日期   2020.3.25    指导老师       修宇 实验二顺序结构程序设计(验证性实验)(二学时) [实验目的] (1)掌握数据的输入输出的方法: (2)熟悉顺序结构程序中语句的执行过程: (3)掌握顺序结构程序的设计方法. [实验条件]   PC机或者远程编程环境   [实验内容] 1.完成三个编程题.( python123) (1)计算圆面积的计算 S 问题描述

Python 程序设计 实验报告三

安徽工程大学 Python程序设计 实验报告 班级   物流192   姓名  王跟运 学号3190505204 成绩 日期    2020.  3.30   指导老师       修宇 [实验名称]实验三 分支结构程序设计 [实验目的]   (1)学会正确使用比较运算符与比较表达式.逻辑运算符和逻辑表达式: (2)熟练用if语句设计选择结构程序 [实验条件] PC机或者远程编程环境 [实验内容] 1.完成三个编程题(python123) (1)设计一个货币转换程序 问题描述: 参考温度转换实例

python 多线程处理实验

最近要做个东西,没优化之前.跑一次要11个小时.跑的时候看cpu,内存都有富裕,就考虑用python 多线程来做. 多线程要是能省时间,也是省在等待IO 的时候,让机器做点其他的事.否则如果只是计算循环1+1=2 ,用多线程也不会提高效率,因为cpu很忙.每起一个线程,就会占一块内存,线程也不能起多了,起多了,分不到CPU时间,也没有那么多内存. 多线程实验如下: 1. 用循环来做.主线程循环50次,每循环一次,执行一次处理数据计算,休息5秒(模拟读取文件) 2. 启线程来做.做个线程列表,每循

python mqtt client publish操作

使用Python库paho.mqtt.client 模拟mqtt client 连接broker,publish topic. #-*-coding:utf-8-*- import paho.mqtt.client as mqtt class mqttHandle(object): def __init__(self,mqtt_info): self.mqtt_info=mqtt_info def on_connect(client, userdata, flags, rc): print("C