From a328ae0164c890e4e9da3d59802938d20967cd9d Mon Sep 17 00:00:00 2001 From: OUDJOUDI Mazis <mazis.oudjoudi9@etu.univ-lorraine.fr> Date: Mon, 29 Apr 2024 21:41:32 +0000 Subject: [PATCH] Upload New File --- serveur.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 serveur.py diff --git a/serveur.py b/serveur.py new file mode 100644 index 0000000..ea7ec8c --- /dev/null +++ b/serveur.py @@ -0,0 +1,52 @@ +import socket +import threading + +# Fonction pour gérer la connexion d'un client +def handle_client(client_socket, client_address): + while True: + try: + # Recevoir le message du client + message = client_socket.recv(1024).decode() + + # Vérifier si le client a quitté la conversation + if message == 'quit': + print(f"Client {client_address} disconnected.") + break + + # Transmettre le message à tous les autres clients + for client in clients: + if client != client_socket: + client.send(f"Client {client_address}: {message}".encode()) + except ConnectionResetError: + # Gérer les erreurs de connexion + print(f"Client {client_address} disconnected.") + break + +# Fonction pour démarrer le serveur +def start_server(host, port): + # Créer le socket du serveur + server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server_socket.bind((host, port)) + server_socket.listen(5) + print(f"Server is running on {host}:{port}") + + while True: + # Accepter les connexions des clients + client_socket, client_address = server_socket.accept() + print(f"Client {client_address} connected.") + + # Ajouter le client à la liste des clients + clients.append(client_socket) + + # Démarrer un nouveau thread pour gérer la connexion du client + client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address)) + client_thread.start() + +# Demander à l'utilisateur de saisir l'adresse IP et le port +host = input("Entrez l'adresse IP du serveur : ") +port = int(input("Entrez le port du serveur : ")) + +# Démarrer le serveur avec les paramètres spécifiés +clients = [] +start_server(host, port) + -- GitLab