记录简单使用QT、socket做一个供使用at指令的esp8266连接显示界面

本文介绍了使用Python的PYQT5库开发的两个版本的网络数据接收界面。简陋版仅用于数据展示,而升级版具备更稳定的连接管理和文件操作。通过实例代码,读者将学会如何创建TCP服务器,接收客户端数据并写入txt文件。
摘要由CSDN通过智能技术生成

一、环境

python3.X、PYQT5、

二、界面

1.简陋版本
在这里插入图片描述
使用说明:
本简陋版只能上传数据显示,且需要自己ipconfig一下查看本机ip地址
链接:
链接:https://pan.baidu.com/s/1ma72glNQORgRjlvr2hrhkg
提取码:cyrn

2.升级版本

在这里插入图片描述
说明:
1.请不要频繁连接,
2.请不要随意删除txt文件

三、简陋代码附录

import socket
from threading import Thread
import sys
from PyQt5.QtCore import Qt,  QBasicTimer
from PyQt5.QtWidgets import QWidget, QApplication, QGridLayout, QLabel

SocketHost='0.0.0.0'
SocketPort=1234

class Connect():
    getdatae=''
    g_conn_pool = {}  # 连接池
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 定义socket类型,网络通信,TCP
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind((SocketHost, SocketPort))  # 套接字绑定的IP与端口
    s.listen(10)  # 开始TCP监听,监听1个请求
    print("socket start!")
    def accept_client(self):
        while True:
            client, info = Connect.s.accept()  # 阻塞,等待客户端连接
            # 给每个客户端创建一个独立的线程进行管理
            thread = Thread(target=Connect.recive, args=(self, client, info))
            # 设置成守护线程
            thread.setDaemon(True)
            thread.start()
    def recive(self, client, info):
        # conn,addr=client.accept()   #接受TCP连接,并返回新的套接字与IP地址
        print('Connectedby by ', info)  # 输出客户端的IP地址
        quitip = info
        while 1:
            try:
                data = client.recv(2048)  # 把接收的数据实例化
                print(data)
                data = data.decode('utf-8')
                #data = eval(data)
                txt_file = open("./data.txt", "w", encoding="utf-8")  # 以写的格式打开先打开文件
                txt_file.write(data)
                txt_file.close()
                print(eval(data))
            except Exception as e:
                print(e)
                print("quit")
                print(quitip)
                client.close()
                break


class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.timer =QBasicTimer()
        self.timer.start(1000, self)
        self.initUI()


    def initUI(self):

        grid = QGridLayout()
        grid.setSpacing(10)
        b='鼠标移动至此'
        self.text = b
        self.label = QLabel(self.text, self)
        self.label.setGeometry(50, 50, 300, 200)
        self.label.setWordWrap(True)
        self.setStyleSheet("QLabel{color:rgb(225,22,173,255);font-size:50px;font-weight:normal;font-family:Arial;}")

        grid.addWidget(self.label, 0, 0, Qt.AlignTop)
        self.setMouseTracking(True)
        self.setLayout(grid)
        self.setGeometry(300, 300, 350, 200)
        self.setWindowTitle('Event object')
        self.show()

    def timerEvent(self, event):
        #print("timer running!")
        txt_file = open("./data.txt", "r", encoding="utf-8")  # 先打开文件
        contents = txt_file.readlines()
        txt_file.close()
        text2 = str(contents)
        self.label.setText(text2)

def connet():

    c=Connect()
    thread = Thread(target=c.accept_client)
    thread.setDaemon(True)
    thread.start()
    return c

if __name__ == '__main__':
    c=connet()
    alid = QApplication(sys.argv)
    ex = Example()
    sys.exit(alid.exec_())
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值