python udp报文接收,,# coding=u
python udp报文接收,,# coding=u
# coding=utf-8#!/usr/bin/env pythonfrom PyQt5.QtCore import QPoint, QRect, QSize, Qtfrom PyQt5.QtWidgets import (QApplication, QLayout, QPushButton, QSizePolicy,QVBoxLayout, QWidget)from PyQt5.Qt import QTextEdit, QLineEditfrom PyQt5.QtNetwork import * import structimport datetimedef num2Ip(num): ip = "%d.%d.%d.%d" % ((num>>24)&0xff,(num>>16)&0xff,(num>>8)&0xff,num&0xff) return ipclass Window(QWidget): def __init__(self): super(Window, self).__init__() self.fp = open("test.log","w") flowLayout = QVBoxLayout() self.ip = QLineEdit() self.textEdit = QTextEdit() self.textEdit.setReadOnly(True) self.btn = QPushButton("清空日志") self.btn.clicked.connect(self.clearData) flowLayout.addWidget(self.btn) flowLayout.addWidget(self.textEdit) self.setLayout(flowLayout) self.setWindowTitle("日志监控") self.port = 7700 self.udpSocket = QUdpSocket(self) self.udpSocket.readyRead.connect(self.dataReceive) result = self.udpSocket.bind(self.port) def clearData(self): self.textEdit.clear() def dataReceive(self): while self.udpSocket.hasPendingDatagrams(): msglist = self.udpSocket.readDatagram(self.port) msg = msglist[0] length = len(msg) if length == 23: chl_id,ip_num,slot_id,counter,receiveFrameMode,snr,offsetFreqStatus = struct.unpack(‘!BIHIBHI‘, msg[0:-5]) time=datetime.datetime.now() text = (time,chl_id,num2Ip(ip_num),slot_id,counter,receiveFrameMode,snr,offsetFreqStatus) self.textEdit.insertPlainText(str(text)) self.textEdit.insertPlainText("\r\n") self.fp.write(str(text) + "\r\n")if __name__ == ‘__main__‘: import sys app = QApplication(sys.argv) mainWin = Window() mainWin.show() sys.exit(app.exec_())
python udp报文接收
相关内容
- Python求均值,方差,标准差,,import num
- python笔记13-多线程实战篇(tomorrow),,安装1.tomorr
- ipython在最新python版本中出现事件循环问题,,问题:w
- python涓紝a=10.0 b=10.0 a is b 涓轰粈涔堣緭鍑烘槸false,
- 用Python操作git命令,,import osf
- 桩服务开发2---与python结合,,from mitmp
- python 特征缺失值填充,,我们在进行模型训练时
- Python之禅中的几句话--传说中的蛇宗总纲,,Simple is
- 计算auc的代码-python,,自己写的计算auc的
- centos7 安装python3.8,,1.安装编译相关工具
评论关闭