파이썬으로 간단한 UDP 전송 GUI 프로그램

개요



UDP 패킷을 전송하는 프로그램을 GUI로 만들고 싶습니다.
GUI를 구축하려면 Tkinter를 사용합니다.

환경


  • OS : Windows10 Pro
  • IDE : PyCharm CE
  • Python3.6

  • GUI



    아래 이미지 같은 느낌으로
    Send만은 버튼으로 그 외는 텍스트 박스
    텍스트 상자 구현에는 한 줄만 입력할 수 있는 tk.Entry 사용

  • IP : 대상 IP 주소
  • Port : 대상 포트
  • Delay : 패킷을 보내는 간격
  • Data : 패킷 내용
  • Num : 보내는 패킷의 총수

  • 출처



    udp_send_gui.py
    # -*- coding:utf-8 -*-
    
    import time
    import socket
    import tkinter as tk
    
    
    def udp_send():
        msg = DataBox.get()
        # 送るメッセージ
    
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
        delay_time = DelayBox.get()
    
        for i in range(0, int(NumBox.get())):
            client.sendto(msg.encode(), (IpBox.get(), int(PortBox.get())))
            time.sleep(float(delay_time))
    # UDP送信関数
    
    
    root = tk.Tk()  # ウィンドウ作成
    root.title("UDP Packet Generator")  # ウィンドウタイトル
    root.geometry("640x480")    # ウィンドウサイズ
    
    
    Ip = tk.Label(root, text="IP:")
    Port = tk.Label(root, text="Port:")
    Delay = tk.Label(root, text="Delay:")
    Data = tk.Label(root, text="Data:")
    Num = tk.Label(root, text="Num:")
    
    IpBox = tk.Entry(font=("Consolas", "30"))
    PortBox = tk.Entry(font=("Consolas", "30"))
    DelayBox = tk.Entry(font=("Consolas", "30"))
    DataBox = tk.Entry(font=("Consolas", "30"))
    NumBox = tk.Entry(font=("Consolas", "30"))
    
    IpBox.insert(tk.END, "192.168.")
    PortBox.insert(tk.END, "9998")
    DelayBox.insert(tk.END, "0.1")
    NumBox.insert(tk.END, "1")
    # 部品の作成
    
    
    Ip.place(height=60, y=30)
    Port.place(height=60, y=150)
    Delay.place(height=60, y=270)
    Data.place(height=60, y=390)
    Num.place(height=60, x=440, y=390)
    
    IpBox.place(height=60, width=360, x=60, y=30)
    PortBox.place(height=60, width=360, x=60, y=150)
    DelayBox.place(height=60, width=360, x=60, y=270)
    DataBox.place(height=60, width=360, x=60, y=390)
    NumBox.place(height=60, width=120, x=500, y=390)
    # 部品の配置
    
    
    Send = tk.Button(root, text="Send!")
    Send["command"] = udp_send
    Send.place(height=300, width=185, x=440, y=30)
    # 送信ボタン
    
    root.mainloop()
    
    

    결과





    요약



    쉽게 GUI를 만들 수 있는 Tkinter

    좋은 웹페이지 즐겨찾기