from tkinter import * import socket import threading from tkinter.filedialog import askopenfilenames class Client1: def __init__(self): self.start1() def __del__(self): self.client1.close() def start1(self): self.init1 = Tk() self.init1.title("客户端聊天工具") self.init1.geometry('500x600') self.init1["bg"] = 'pink' self.init1.attributes("-alpha", 0.8) self.text3 = Text(self.init1, width=40, height=2) self.text3.place(x=20, y=330) self.text3.insert("end", "192.168.0.103") self.bu1 = Button(self.init1, text="连接",command=self.link) self.bu1.place(x=330, y=330) self.text1 = Text(self.init1, width=60, height=20) self.text1.place(x=20, y=50) self.w = Label(self.init1, text="客户端信息框", width=60) self.w.place(x=20, y=20) self.bu = Button(self.init1, text="发送",command=self.add1) self.bu.place(x=20, y=430) self.text2 = Text(self.init1, width=25, height=3) self.text2.place(x=80, y=430) self.init1.mainloop() def link(self): temp = self.text3.get(1.0, END) temp = temp[:-1] print(len(temp)) self.client1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.client1.connect((temp, 8080)) self.text1.insert("end", f"连接{temp}成功!" + "\n"+"\n") self.init1.after(1000, self.get2) def upload(self): askopenfilenames() def get2(self): t = threading.Thread(target=self.get1) #t.setDaemon(True) t.start() self.init1.after(1000, self.get2) def get1(self): msg = self.client1.recv(1024) if msg is not None: msg = msg.decode('utf-8') self.text1.insert("end", "服务端发来的消息:" + msg + "\n") def add1(self): temp = self.text2.get(1.0, "end") temp1 = temp self.client1.send(temp1.encode('utf-8')) self.text1.insert("end", "你发送的消息:" + temp + "\n") self.text2.delete(1.0, "end") a = Client1()