IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> udp--通过输入和文件读取的方式发包 -> 正文阅读

[网络协议]udp--通过输入和文件读取的方式发包

# -*- coding: utf-8 -*-
# @Time    : 2021/11/23 15:50
# @Author  : 码小白--
# @Email   : ss@qq.com
# @File    : FFFF.py
# @Software: PyCharm
import socket
from tkinter import *
from tkinter import filedialog
from tkinter.filedialog import *

class A:
    """
    使用StringVar() 和 textvariable
    对Button进行绑定
    实现Button对数据进行操作
    解决Button传参问题
    StringVar()的数需要使用.get()获取值
    """
    def __init__(self, root):
        self.root=root
        self.ip = StringVar()  # 第一个数字
        self.port = IntVar()  # 第一个数字
        self.log=StringVar()
        self.count=IntVar()
        self.createpage()
        self.filename = StringVar()
    def show(self):
        num=self.var.get()
        if num==1:
            self.action()
        else:
            self.action1()
    def createpage(self):
        self.var=IntVar()
        self.var.set(0)
        Label(self.root, text="选择方式", bg="lightyellow", width=30).grid(row=0, column=0)

       
        man =Radiobutton(self.root, text="手动", variable=self.var, value=1, command=self.show)
        man.grid(row=0, column=1)
       
        woman =Radiobutton(self.root, text="自动", variable=self.var, value=2, command=self.show)
        woman.grid(row=0, column=2)

    def action(self):
        Label(self.root, text="请输入ip:", font=('宋体', 9)).grid(row=1, column=0)
        Label(self.root, text="请输入端口:", font=('宋体', 9)).grid(row=2, column=0)
        Label(self.root, text="请输入日志:", font=('宋体', 9)).grid(row=3, column=0)
        Label(self.root, text="请输入次数:", font=('宋体', 9)).grid(row=4, column=0)
        Entry(self.root,textvariable=self.ip).grid(row=1, column=1)
        Entry(self.root,textvariable=self.port).grid(row=2, column=1)
        Entry(self.root,textvariable=self.log).grid(row=3, column=1)
        Entry(self.root,textvariable=self.count).grid(row=4, column=1)

        Button(self.root, text='运行', width='10',command=self.btn_def).grid(row=4, column=2)

    def btn_def(self):
        # 使用.get()获取值
        IP=self.ip.get()
        PORT=int(self.port.get())
        LOG=self.log.get()
        COUNT=int(self.count.get())
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        for a in range(COUNT):
            s.sendto(LOG.encode(), (IP, PORT))
        s.close()
    def btn_def1(self):
        # 获取输入框内容
        IP=self.ip.get()
        PORT=int(self.port.get().strip())
        LOG=self.log.get()
        COUNT=int(self.count.get().strip())
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        for a in range(COUNT):
            f=open(LOG,'r')
            for i in f:
                s.sendto(LOG.encode(), (IP, PORT))
                f.close()
    def Huofile(self):
        file_path = filedialog.askopenfilename()
        self.filename.set(file_path)  # 设置filename值,输出的值为io流
    def action1(self):
        Label(root, text="请输入ip  :", font=('宋体', 9)).grid(row=1, column=0)
        Label(root, text="请输入端口  :", font=('宋体', 9)).grid(row=2, column=0)
        Label(root, text="选择文件  :", font=('宋体', 9)).grid(row=3, column=0)
        Label(root, text="请输入次数 :", font=('宋体', 9)).grid(row=4, column=0)
        # 设置输入框
        Entry(root,textvariable=self.ip).grid(row=1, column=1)
        Entry(root,textvariable=self.port).grid(row=2, column=1)
         # 输入端口框
        Entry(root,textvariable=self.count).grid(row=4, column=1)
          # 输入次数框
        Entry(root, textvariable=self.filename).grid(row=3, column=1)
         # 获取文件路径框
        Button(root, text='运行', width='10', command=self.btn_def1).grid(row=4, column=2)
        # 按钮3
        Button(root, text='选择', width='10', command=self.Huofile).grid(row=3, column=2)
if __name__ == '__main__':
    root = Tk()
    A(root)
    root.title('测试')
    root.geometry('500x200')
    root.mainloop()

鸡肋

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:19:34  更:2021-11-24 08:20:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:45:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码