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