import socket import threading from random import randint # Server-Informationen HOST = '127.0.0.1' PORT = 12345 nickname = input("username:") if nickname == "": nickname = ["tux","gnu","wilber","xue","puffy"][randint(0,4)] nickname += str(randint(1000,9999)) print(f"dein username wurde zu {nickname} gesetzt.") run = True def receive_message(sock): """ Funktion für das Empfangen von Nachrichten """ global run while run: try: # Empfange die Nachricht des Servers msg = sock.recv(1024).decode('utf-8') if not msg: break print(f"\r{msg}\n", end='', flush=True) except: # Schließe die Verbindung, wenn ein Fehler auftritt print("Verbindung getrennt.") break def start_client(): """ Funktion für das Starten des Clients """ global run # Erstelle den Client-Socket und verbinde ihn mit dem Server client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((HOST, PORT)) # Starte einen Thread für das Empfangen von Nachrichten threading.Thread(target=receive_message, args=(client,), daemon=True).start() client.sendall(nickname.encode('utf-8')) while run: try: msg = input(">>") if msg.lower() == "exit": run = False print("BEENDEN") break client.sendall(msg.encode('utf-8')) except KeyboardInterrupt: run = False print("\rBEENDEN") break except: break if __name__ == '__main__': start_client()