خطا کد در قسمت Client
سوال
فوریه / تو این کد خط ۱۲ و ۹۶ ارور میده ( توی کد clinet ) تو کد server مشکلی نداره من جفتشونو میزارم ممنون میشم یک جواب بده
#clinet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
import socket import threading import tkinter import tkinter.scrolledtext from tkinter import simpledialog HOST = '127.168.1.11' PORT = 9090 class Client: def __init__(self, host, port): self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.connect((host, port)) msg = tkinter.Tk() msg.withdraw() self.nickname = simpledialog.askstring("nick name", "please chose a nicke name ", parent=msg) self.gui_down = False self.running = True gui_thread = threading.Thread(target=gui_loop) receive_thread = threading.Thread(target=receive) gui_thread.start() receive_thread.start() def stop(self): self.running = False self.win.destroy() self.sock.close() exit(0) def write(self): message = f"{self.nickname}: {self.input_area.get('1.0', 'end')}" self.sock.send(message.encode('utf-8')) self.input_area.delete('1.0', 'end') def receive(self): while self.running: try: message = self.sock.recv(1024) if message == 'nick': self.sock.send(self.nickname.encode('utf-8')) else: if self.gui_down: self.text_area.config(state='normal') self.text_area.insert('end', message) self.text_area.yview('end') self.text_area.config(state='disabled') except ConnectionAbortedError: break except: print("Eror") self.sock.close() break def gui_loop(self): self.win = tkinter.Tk() self.win.configure(bg="lightgray") self.chat_lable = tkinter.lable(self.win, text='chat: ', bg="lightgray") self.chat_lable.config(font=("Arial, 12")) self.chat_lable.pack(padx=20, pady=5) self.text_area = tkinter.scrolledtext.ScrolledText(self.win) self.text_area.pack(padx=20, pady=5) self.text_area.config(state='disabled') self.msg_lable = tkinter.lable(self.win, text='chat: ', bg="lightgray") self.msg_lable.config(font=("Arial, 12")) self.msg_lable.pack(padx=20, pady=5) self.input_area = tkinter.text(self.win, height=3) self.input_area.pack(padx=20, pady=5) self.send_button = tkinter.Button(self.win, text='send', command=self.write) self.send_button.config(font=("Arial, 12")) self.send_button.pack(padx=20, pady=5) self.gui_down = True self.win.protocol('WM_DELETE_WINDOW', self.stop) self.win.mainloop client = Client(HOST, PORT) --------------------------------------------------------------------- #server |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
import socket import threading HOST = '192.168.1.11' PORT = 9090 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.bind((HOST, PORT)) server.listen() clients = [] nicknames = [] def broadcast(message): for client in clients: client.send(message) def handle(client): while True: try: message = client.recv(1024) print(f"{nicknames[clients.index(client)]} says {message}") broadcast(message) except: index = clients.index(client) clients.remove(client) client.close() nickname = nicknames[index] nicknames.remove(nickname) break def receive(): while True: client, address = server.accept() print(f'connected with {str(address)}!') client.send("NICK".encode('utf-8')) nickname = client.recv(1024) nicknames.append(nickname) print(f'nickname of the clinet is {nickname}') broadcast(f'{nickname}connected to the server!n'.encode('utf-8')) clients.append(client) client.send("connected to the server".encode('utf-8')) thrad = threading.Thread(target=handle, args=(client,)) thrad.start() print("server runing...") receive() |
0
انجمن برنامه نویسان پایتون
2 سال
0 پاسخ ها
587 دیده شده
0
ارسال یک پاسخ
شما برای افزودن نظر جدید یا باید وارد شوید یا اینکه ثبت نام کنید. ورود ثبت نام