import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QPushButton, QHBoxLayout, QWidget,QApplication, QMainWindow, QDesktopWidget, QMessageBox
from PyQt5.QtCore import pyqtSignal
import socket
import threading
import ctypes
import inspect
import binascii
import datetime
import time
from time import ctime
import os
# 强制关闭线程的方法
def _async_raise(tid, exc_type):
tid = ctypes.c_long(tid)
if not inspect.isclass(exc_type):
exc_type = type(exc_type)
res = ctypes.pythonapi.PyThreadState_SetAsyncExc(
tid, ctypes.py_object(exc_type))
if res == 0:
raise ValueError("invalid thread id")
elif res != 1:
ctypes.pythonapi.PyThreadState_SetAsyncExc(tid, None)
raise SystemError("PyThreadState_SetAsyncExc failed")
def stop_thread(thread):
_async_raise(thread.ident, SystemExit)
class Ui_MainWindow(object):
# 主线程属性继承自Ui_NetAssist
# 信号槽机制:设置一个信号,用于触发接收区写入动作
signal_write_msg = pyqtSignal(str)
signal_status_connected = pyqtSignal(str)
signal_status_removed = pyqtSignal(str)
signal_add_clientstatus_info = pyqtSignal(str)
signal_messagebox_info = pyqtSignal(str)
# statusbar上添加的控件
# 使用字典方式进行管理
statusbar_dict = {}
rx_count = 0
tx_count = 0
tim = None
# statusbar End
tail_ok = False
dela = 0
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(808, 745)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
# TCP参数
self.s = None # s代表socket,本文件中为tcp socket
self.s_th = None # s_th代表为每个连接到服务器的客户端创建线程
self.client_th = None # tcp client守护线程
self.accept_th = None # TCP作为Server的监听线程
self.f = None # 打开文件线程
self.client_socket_list = list() # 连接到服务器的客户端列表
self.link = False # 初始化连接状态为False
self.working = False # 初始化工作状态为False
# UDP参数
self.us = None # us代表udp socket
self.us_th = None
self.link = False # 初始化连接状态为False
self.working = False # 初始化工作状态为False
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_3.setGeometry(QtCore.QRect(10, 440, 171, 202))
self.groupBox_3.setObjectName("groupBox_3")
self.checkBox_5 = QtWidgets.QCheckBox(self.groupBox_3)
self.checkBox_5.setGeometry(QtCore.QRect(12, 53, 132, 19))
self.checkBox_5.setObjectName("checkBox_5")
self.checkBox_6 = QtWidgets.QCheckBox(self.groupBox_3)
self.checkBox_6.setGeometry(QtCore.QRect(12, 79, 132, 19))
self.checkBox_6.setObjectName("checkBox_6")
self.checkBox_7 = QtWidgets.QCheckBox(self.groupBox_3)
self.checkBox_7.setGeometry(QtCore.QRect(12, 105, 132, 19))
self.checkBox_7.setObjectName("checkBox_7")
self.checkBox_8 = QtWidgets.QCheckBox(self.groupBox_3)
self.checkBox_8.setGeometry(QtCore.QRect(12, 133, 91, 19))
self.checkBox_8.setObjectName("checkBox_8")
self.lineEdit = QtWidgets.QLineEdit(self.groupBox_3)
self.lineEdit.setGeometry(QtCore.QRect(100, 134, 41, 16))
self.lineEdit.setObjectName("lineEdit")
self.label = QtWidgets.QLabel(self.groupBox_3)
self.label.setGeometry(QtCore.QRect(150, 130, 16, 16))
self.label.setObjectName("label")
self.radioButton_3 = QtWidgets.QRadioButton(self.groupBox_3)
self.radioButton_3.setGeometry(QtCore.QRect(12, 27, 67, 19))
self.radioButton_3.setObjectName("radioButton_3")
self.radioButton_4 = QtWidgets.QRadioButton(self.groupBox_3)
self.radioButton_4.setGeometry(QtCore.QRect(93, 27, 51, 19))
self.radioButton_4.setObjectName("radioButton_4")
self.pushButton_3 = QtWidgets.QPushButton(self.groupBox_3)
self.pushButton_3.setGeometry(QtCore.QRect(12, 162, 74, 28))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(self.groupBox_3)
self.pushButton_4.setGeometry(QtCore.QRect(90, 162, 73, 28))
self.pushButton_4.setObjectName("pushButton_4")
self.groupBox_5 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_5.setGeometry(QtCore.QRect(10, 640, 771, 61))
self.groupBox_5.setTitle("")
self.groupBox_5.setObjectName("groupBox_5")
self.lineEdit_3 = QtWidgets.QLineEdit(self.groupBox_5)
self.lineEdit_3.setGeometry(QtCore.QRect(500, 20, 61, 24))
self.lineEdit_3.setObjectName("lineEdit_3")
self.lineEdit_5 = QtWidgets.QLineEdit(self.groupBox_5)
self.lineEdit_5.setGeometry(QtCore.QRect(580, 20, 61, 24))
self.lineEdit_5.setObjectName("lineEdit_5")
self.pushButton_9 = QtWidgets.QPushButton(self.groupBox_5)
self.pushButton_9.setGeometry(QtCore.QRect(660, 20, 93, 28))
self.pushButton_9.setObjectName("pushButton_9")
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setGeometry(QtCore.QRect(10, 10, 161, 220))
self.groupBox.setObjectName("groupBox")
self.label_2 = QtWidgets.QLabel(self.groupBox)
self.label_2.setGeometry(QtCore.QRect(12, 27, 98, 16))
self.label_2.setObjectName("label_2")
self.comboBox = QtWidgets.QComboBox(self.groupBox)
self.comboBox.setGeometry(QtCore.QRect(12, 49, 131, 21))
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.comboBox.addItem("")
self.label_3 = QtWidgets.QLabel(self.groupBox)
self.label_3.setGeometry(QtCore.QRect(12, 77, 128, 16))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.groupBox)
self.label_4.setGeometry(QtCore.QRect(12, 127, 128, 16))
self.label_4.setObjectName("label_4")
self.lineEdit_2 = QtWidgets.QLineEdit(self.groupBox)
self.lineEdit_2.setGeometry(QtCore.QRect(12, 149, 131, 24))
self.lineEdit_2.setObjectName("lineEdit_2")
self.pushButton_5 = QtWidgets.QPushButton(self.groupBox)
self.pushButton_5.setGeometry(QtCore.QRect(12, 180, 131, 28))
self.pushButton_5.setObjectName("pushButton_5")
self.Localip_lineedit = QtWidgets.QLineEdit(self.groupBox)
self.Localip_lineedit.setGeometry(QtCore.QRect(10, 100, 131, 24))
self.Localip_lineedit.setObjectName("Localip_lineedit")
self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox_2.setGeometry(QtCore.QRect(9, 230, 161, 201))
self.groupBox_2.setObjectName("groupBox_2")
self.checkBox_4 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_4.setGeometry(QtCore.QRect(11, 103, 132, 19))
self.checkBox_4.setObjectName("checkBox_4")
self.checkBox_2 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_2.setGeometry(QtCore.QRect(11, 51, 132, 19))
self.checkBox_2.setObjectName("checkBox_2")
self.checkBox = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox.setGeometry(QtCore.QRect(11, 77, 132, 19))
self.checkBox.setObjectName("checkBox")
self.checkBox_3 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_3.setGeometry(QtCore.QRect(11, 129, 132, 19))
self.checkBox_3.setObjectName("checkBox_3")
self.radioButton =
使用python语言,基于Pyqt5编写的Netassist小程序
需积分: 50 17 浏览量
2022-04-26
18:17:29
上传
评论
收藏 34.38MB 7Z 举报
weixin_58277261
- 粉丝: 1
- 资源: 5
最新资源
- #P0015. 全排列 超级简单
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0