import socketimport threadings = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((socket.gethostname(), 1023))print(socket.gethostname())s.listen(5)clients = []nickename = []def Client_Handler(cli):while True:try:reply = cli.recv(1024).decode("utf-8")if reply == "QUIT":index_of_cli = clients.index(cli)nick = nickename[index_of_cli]nickename.remove(nick)clients.remove(cli)BroadCasating(f"{nick} has left the chat room")print(f"Disconnected with f{nick}")breakBroadCasating(reply)except:index_of_cli = clients.index(cli)print(index_of_cli)nick = nickename[index_of_cli]nickename.remove(nick)clients.remove(cli)BroadCasating(f"{nick} has left the chat room")print(f"Disconnected with {nick}")breakdef BroadCasating(msg):for client in clients:client.send(bytes(msg, "utf-8"))def recieve():while True:client_sckt, addr = s.accept()print(f"Connection has been established {addr}")client_sckt.send(bytes("NICK", "utf-8"))nick = client_sckt.recv(1024).decode("utf-8")nickename.append(nick)clients.append(client_sckt)print(f"{nick} has joined the chat room ")BroadCasating(f"{nick} has joined the chat room say hi !!!")threading._start_new_thread(Client_Handler , (client_sckt , ))recieve()s.close()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。