13、监测数据采集物联网应用开发步骤(9.2)

news2024/10/7 15:21:49
  1. 监测数据采集物联网应用开发步骤(9.1)

TCP/IP Server开发

新建TCP/IP Server线程类com.zxy.tcp.ServerThread.py

#! python3
# -*- coding: utf-8 -
'''
Created on 2017年05月10日
@author: zxyong 13738196011
'''

import socket,threading,time
from com.zxy.tcp.TcpServer import TcpServer
from com.zxy.z_debug import z_debug

#监测数据采集物联网应用--TCP/IP Server线程
class ServerThread(z_debug):

    attDtTimeOut = 60
    attInput = ""
    attNum = ""
    attPort = 0
    attThreadSize = 500
    
    def __init__(self, temInput, temNum, temPort):
        self.attInput = temInput
        self.attNum = temNum
        self.attPort = temPort
    
    def run(self):
        global dServThreadList        
        try:            
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.bind(('0.0.0.0', self.attPort))
            s.listen(self.attThreadSize)                               
            while True:
                try:
                    sock, addr = s.accept()
                    ckeys = sock.getpeername()[0] + '|' + str(sock.getpeername()[1])             
                    ts = TcpServer(ckeys)
                    t = threading.Thread(target=ts.server_link, args=(sock, addr), name="ServerClient" + ckeys)
                    t.start()
                except Exception as en:
                    if str(type(self)) == "<class 'type'>":
                        self.debug_in(self,repr(en)+"=>"+str(en.__traceback__.tb_lineno))#打印异常信息
                    else:
                        self.debug_in(repr(en)+"=>"+str(en.__traceback__.tb_lineno))#打印异常信息
                finally:
                    time.sleep(0.1)
        except Exception as e:            
            if str(type(self)) == "<class 'type'>":
                self.debug_in(self,repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息
            else:
                self.debug_in(repr(e)+"=>"+str(e.__traceback__.tb_lineno))#打印异常信息
            Pass

新建作为TCP Server接收数据拦截器插件类com.plugins.usereflect.testServerReflectInClass1.py

#! python3
# -*- coding: utf-8 -
'''
Created on 2017年05月10日
@author: zxyong 13738196011
'''
from com.zxy.z_debug import z_debug

#监测数据采集物联网应用--作为TCP Server接收数据拦截器插件,可做设备反控操作程序
class testServerReflectInClass1(z_debug):
    #接收到数据
    strResult        = ""
    #需要发送到客户端数据
    strSend          = ""
    #是否继续执行 1:继续执行 0:中断执行
    strContinue      = "1"     
    #所连接的远端IP
    strIP            = ""
    #端口号            
    strPort          = ""
    
    def __init__(self, params):
        pass
    
    def init_start(self):
        #作为服务端接收数据拦截器
        if self.strResult == "001":
            self.strSend = "#send to client data:client"
        print("AAAA作为服务端接收数据拦截器:"+self.strResult)
        self.strResult = "ok"

新建作为TCP Server接收数据拦截器插件类com.plugins.usereflect.testServerReflectInClass2.py

#! python3
# -*- coding: utf-8 -
'''
Created on 2017年05月10日
@author: zxyong 13738196011
'''
from com.zxy.z_debug import z_debug

#监测数据采集物联网应用--作为TCP Server接收数据拦截器插件,可做设备反控操作程序
class testServerReflectInClass2(z_debug):
    #接收到数据
    strResult        = ""
    #需要发送到客户端数据
    strSend          = ""
    #是否继续执行 1:继续执行 0:中断执行
    strContinue      = "1"     
    #所连接的远端IP
    strIP            = ""
    #端口号            
    strPort          = ""
    
    def __init__(self, params):
        pass
    
    def init_start(self):
        #作为服务端接收数据拦截器
        if self.strResult == "002":
            self.strSend = "#send to client data:client"
        print("BBB作为服务端接收数据拦截器:"+self.strResult)
        self.strResult = "ok"

com.zxy.main.Init_Page.py中添加代码

from com.zxy.tcp.ServerThread import ServerThread

    @staticmethod
    def Start_Server():
        st = ServerThread("", "", int(Com_Para.AccSocketPort))
        # TCP服务端案例
        t2 = threading.Thread(target=st.run, name="ServerMainThread")
        t2.start()

TCP Server测试案例MonitorDataCmd.py主文件中编写:

在    if __name__ == '__main__':下添加

        #TCP Server接收数据拦截器插件
        Com_Para.ServerREFLECT_IN_CLASS = "com.plugins.usereflect.testServerReflectInClass1"
        #TCP Server配置端口参数 
        Com_Para.AccSocketPort = "8099"
        #TCP/IP Server初始化
        Init_Page.Start_Server()
        #暂停120秒,等待client连接
        time.sleep(120)
        #遍历已经连接到本设备的tcp client并发送数据包
        for key in Com_Para.dServThreadList.keys():
            temSck = Com_Fun.GetHashTableNone(Com_Para.dServThreadList, key)
            temValue = "Server往Client端发送数据包:"+Com_Fun.GetTimeDef()
            Com_Fun.SendSocket(temValue, temSck)
            print("=>"+key+"=>"+temValue)

运行测试结果如下图:

监测数据采集物联网应用开发步骤(10)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/951872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

业务流程与逻辑编排的低代码平台,一文全方位了解它的轻应用信息

JVS低代码开发平台提供了大量的可配置组件和预先集成的功能&#xff0c;开发人员可以通过拖拽和设置属性的方式&#xff0c;快速搭建应用程序的前端界面和交互逻辑。同时&#xff0c;低代码平台也提供了丰富的后端服务和集成能力&#xff0c;可以轻松地与现有的系统和第三方服务…

vulnhub靶机02-Breakout

主机发现 arp-scan -l 扫描端口 nmap --min-rate 10000 -p- 192.168.21.143 扫描端口信息 nmap -sV -sT -O -p80,139,445,10000,20000 192.168.21.143 漏洞扫描 nmap --scriptvuln -p80,139,445,10000,20000 192.168.21.143 先看网站 什么都没有看看f12 找到点好东西 解码…

被遗弃的多重继承

问题 C 是否允许一个类继承自多个父类&#xff1f; C 支持编写多重继承的代码 一个子类可以拥有多个父类 子类拥有所有父类的成员变量 子类继承所有父类的成员函数 子类对象可以当作任意父类对象使用 多重继承的语法规则 多重继承的本质与单继承相同&#xff01; 通过多重…

ChatRWKV 学习笔记和使用指南

0x0. 前言 Receptance Weighted Key Value&#xff08;RWKV&#xff09;是pengbo提出的一个新的语言模型架构&#xff0c;它使用了线性的注意力机制&#xff0c;把Transformer的高效并行训练与RNN的高效推理相结合&#xff0c;使得模型在训练期间可以并行&#xff0c;并在推理…

基于Java的代驾管理系统 springboot+vue,mysql数据库,前台用户、商户+后台管理员,有一万五千字报告,完美运行

基于Java的代驾管理系统 springbootvue&#xff0c;mysql数据库&#xff0c;前台用户、商户后台管理员&#xff0c;有一万五千字报告&#xff0c;完美运行。 系统完美实现用户下单叫车、商户接单、管理员管理系统&#xff0c;页面良好&#xff0c;系统流畅。 各角色功能&#x…

GPT能否辅助数学学习

GPT4.0的数学能力怎么样&#xff1f;我们使用镜像站进行实验&#xff0c;通过不同水平的数学看看GPT4.0的数学能力得到进步没有。镜像站的地址我们放在了最后&#xff0c;各位读者也可以自行去测试。 笔者在ChatGPT镜像站进行测试&#xff0c;我们的实验是让GPT4.0自行出数学题…

记本地新建一个gradle方式springboot项目过程

打算使用gradle在idea新建个springboot项目&#xff0c;然后坑很多&#xff0c;记录一下 原来我的idea应该是社区版&#xff0c;新建项目时候没有可以选择spring相关配置&#xff0c;然后卸载了重装&#xff0c;之前问题是启动是启动起来了&#xff0c;但是状态栏那边一直显示…

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本

功能模块&#xff1a; 待办消息&#xff0c;招标公告&#xff0c;中标公告&#xff0c;信息发布 描述&#xff1a; 全过程数字化采购管理&#xff0c;打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力&#xff0c;为外部…

TCP连接分析:探寻TCP的三次握手

文章目录 一、实验背景与目的二、实验需求三、实验解法1. 预先抓包监测使用Wireshark工具2.进行TCP三次握手&#xff0c;访问www.baidu.com3.分析Wireshark捕获的TCP包 摘要&#xff1a; 本实验使用Wireshark工具&#xff0c;通过抓包监测和分析&#xff0c;深入研究了与百度服…

Richtek立锜EPS助力转向系统方案

Richtek立锜EPS助力转向系统方案包含一个集成的位置控制模块&#xff0c;用来接收一个外部系统&#xff08;泊车模块&#xff09;的角度请求以实现控制EPS系统自动转向的功能。外部交互接口用作与外部泊车模块进行CAN通讯&#xff0c;以支持泊车模块的控制状态的切换和输入角度…

nextTick原理

nextTick 是 Vue 提供的一个异步方法&#xff0c;用于在 DOM 更新之后执行回调函数。它的原理是利用 JavaScript 的事件循环机制来实现异步执行。 具体来说&#xff0c;当我们调用 nextTick 方法时&#xff0c;Vue 会将传入的回调函数添加到一个队列中。在下一个事件循环中&am…

Linux Input子系统

一、基本概念 按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。本质属于字符设备。 1. input子系统结构如下&#xff1a; input 子系统分为 input 驱动层、input 核心层、input 事件处理层&…

重庆旅游攻略

重庆旅游攻略 白天 鹅岭二厂 &#xff08;1&#xff09;地铁线路&#xff1a; 1号线鹅岭站 川美涂鸦一条街 &#xff08;1&#xff09;地铁线路&#xff1a; 黄桷坪正街 湖广会馆 3. 长江索道 需要预约 门票&#xff1a;单程20元&#xff0c;往返30元 4. 重庆动物园 …

Mysql 事物与存储引擎

MySQL事务 MySQL 事务主要用于处理操作量大&#xff0c;复杂度高的数据。比如说&#xff0c;在人员管理系统中&#xff0c; 要删除一个人员&#xff0c;即需要删除人员的基本资料&#xff0c;又需要删除和该人员相关的信息&#xff0c;如信箱&#xff0c; 文章等等。这样&#…

MMSegmentation训练自己的语义分割数据集

全流程&#xff0c;训练语义分割数据集 数据标注json转mask 运行源码MMSegmentation模型选择运行部分 数据标注 # 安装 pip install labelme # 启动labelme labelme然后 ctrl N 开启多边形标注即可&#xff0c;命名类为person 之后会保存到同目录下json文件&#xff1a; js…

ioctl、printk及多个此设备支持

一、ioctl操作实现 ioctl&#xff08;Input/Output Control&#xff09;是一个在 Unix-like 操作系统中的系统调用&#xff0c;用于控制设备或文件的各种操作。它允许用户空间程序与内核空间进行交互&#xff0c;执行一些特定的设备控制、状态查询或其他操作&#xff0c;而不必…

Java“魂牵”京东商品详情描述数据,京东商品详情API接口,京东API接口申请指南

要通过京东的API获取商品详情描述数据&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品详情&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者&#xff0c;并创…

Springboot整合MyBatisPlus框架操作MySQL

1、MyBatis-Plus概述 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 【技术储备】 拥有 Java 开发环境以及相应 IDE…

elasticsearch8.9.1集群搭建

目录 1.官网文档 2.安装步骤 2.1 环境准备 2.2 添加用户 2.3 修改文件profile文件 2.4 修改elasticsearch.yml 2.5 修改 sysctl.conf 3.启动 3.1 切换到kibana 3.2 启动elasticsearch 3.3 启动kibana 3.4 验证节点情况 1.官网文档 elasticsearch文档&#xff1a;ht…

漏洞发现-web应用发现探针类型利用

关于在真实环境下面&#xff0c;这个漏洞该如何发现 这里老师把它分成了三块第一类是 #已知cms 如常见的dedecms&#xff0c;discuz&#xff0c;wordpress等源码结构&#xff0c;这些都是网上比较知名的php源码的cms的名称&#xff0c;这是我们在国内常见的几个程序&#xf…