酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

import socket import threading import tkinter as tk from tkinter import scrolledtext, messagebox, simpledialog, filedialog import traceback class chatclient: def __init__(self, root): self.root = root self.root.title("pytalk") self.root.geometry("500x600") self.sock = none self.main_menu() def main_menu(self): for widget in self.root.winfo_children(): widget.destroy() self.label = tk.label(self.root, text="欢迎来到pytalk

") self.label.pack() self.connection_button = tk.Button(self.root, text="连接到服务器", command=self.connect_to_server) self.connection_button.pack() def connect_to_server(self): ip_address = simpledialog.askstring("连接到服务器", "请输入服务器的IP地址:") port = simpledialog.askinteger("连接到服务器", "请输入服务器端口号:") self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: self.sock.connect((ip_address, port)) self.chat_menu() except Exception as e: messagebox.showerror("错误", f"无法连接到服务器:\n{str(e)}") self.sock = None def chat_menu(self): for widget in self.root.winfo_children(): widget.destroy() self.chatwindow = scrolledtext.ScrolledText(self.root, width=60, height=30) self.chatwindow.pack() self.message_entry = tk.Entry(self.root, width=50) self.message_entry.pack() self.send_button = tk.Button(self.root, text="发送消息", command=self.send_message) self.send_button.pack() listen_thread = threading.Thread(target=self.receive_messages) listen_thread.daemon = True listen_thread.start() def send_message(self): message = self.message_entry.get() self.message_entry.delete(0, tk.END) if message.strip() != "": self.sock.send(message.encode()) else: messagebox.showerror("错误", "消息不能为空!") def receive_messages(self): while True: try: message = self.sock.recv(1024) if not message: break self.chatwindow.insert(tk.END, message.decode() + "\n") self.chatwindow.see(tk.END) except Exception as e: messagebox.showerror("错误", f"断开连接:\n{str(e)}") self.sock = None break def main(): try: root = tk.Tk() chat_client = chatclient(root) root.mainloop() except Exception as e: print("发生错误:", e) if __name__ == "__main__": main() [2024-10-30 13:14:13 | AI写代码神器 | 1469点数解答]

相关提问