天下程序员首页cx06.com
管理 |  登录 |  注册
袁鹏飞的小屋
笔记(共39个) > python

python udp_ui,udp_action,udp_Tk组合的页面-包括客户端和服务端

阅读 0赞 0回复 2024-08-31 22:48:23
import tkinter as tk
from udp服务端_action import action
class Ui:
    def __init__(self,root,host,port) -> None:
        self.root=root
        self.host=host
        self.port=port
    def setUi(self):
        self.root.geometry('600x500+300+200')
        self.root.title("udp服务端")
        self.fr1=tk.Frame(self.root)
        self.bt1=tk.Button(self.fr1,text='开启')
        self.bt1.pack()
        self.fr1.pack()
        ac=action(self.host,self.port)
        self.bt1.configure(command=lambda:ac.udp_server())

import socket
class action:
    def __init__(self,host,port) -> None:
        self.host=host
        self.port=port
    def udp_server(self):
        # 创建对象
        udp_server=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        udp_server.bind((self.host,self.port))
        while True:
            # 从端口接收东西
            data,addr=udp_server.recvfrom(1024)
            # print(data)
            # print(addr)
            print(data.decode(encoding='utf-8'))
            # print("re {data.encode(encode='utf-8')}from{addr[0]}:{addr[1]}".format(data,addr[0],addr[1]))
            if data==b'exit':
                print('服务器退出')
                break
            udp_server.sendto(data,addr)
        udp_server.close()
import tkinter as tk
from udp服务端_ui import Ui
HOST='127.0.0.1'
PORT=10087
if __name__=='__main__':
    root=tk.Tk()
    ui=Ui(root,HOST,PORT)
    ui.setUi()
    root.mainloop()
    
    
import tkinter as tk
from udp客户端_action import action
class Ui:
    def __init__(self,root,host,port) -> None:
        self.root=root
        self.host=host
        self.port=port
    def setUi(self):
        self.root.geometry('600x500+300+200')
        self.root.title("udp客户端")
        self.fr1=tk.Frame(self.root)
        self.bt1=tk.Button(self.fr1,text='开启')
        self.bt1.pack()
        self.fr1.pack()
        self.create_ac()
    def create_ac(self):
        ac=action(self.host,self.port)
        self.bt1.configure(command=ac.udp_clent)

import socket
class action:
    def __init__(self,host,port) -> None:
        self.host=host
        self.port=port    
    def udp_clent(self):
        udp_client=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        while True:
            sendData=input('输入')
            udp_client.sendto(sendData.encode(encoding='utf-8'),(self.host,self.port))
            if sendData=='exit':
                print('退出')
                break
            info=udp_client.recv(1024).decode(encoding='utf-8')
            print('收到',info)
        udp_client.close()

import tkinter as tk
from udp客户端_ui import Ui
HOST='127.0.0.1'
PORT=10087
if __name__=='__main__':
    root=tk.Tk()
    ui=Ui(root,HOST,PORT)
    ui.setUi()
    # ui.bt1.configure(fg="orange")
    root.mainloop()
    

赞(0)

文章作者置顶的回复

全部回复列表 当前第(1)页

添加回复,文明发言,会审核.(服务区回复可以发广告)

作者最新笔记
天下程序员 www.cx06.com 程序员的网上家园!
作者微信:13126507001