import socket import threading # this function is for receiving messages from the server (broadcasted from the other clients) def receive_messages(s): while True: try: message = s.recv(1024).decode() if not message: print("\nDisconnected from server.") break # overwrites the current line to keep the UI clean print(f"\rIncoming: {message}") print("You: ", end="", flush=True) except: print("\nConnection lost.") break client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(("localhost", 12345)) print("Connected to Group Chat.") # thread to listen for messages while we are typing receive_thread = threading.Thread(target=receive_messages, args=(client_socket,)) receive_thread.start() while True: msg = input("You: ") if msg.lower() == "quit": break client_socket.send(msg.encode()) client_socket.close()