From ff39fa976d12651a001f92abf71e1a572112dcbc Mon Sep 17 00:00:00 2001
From: OUDJOUDI Mazis <mazis.oudjoudi9@etu.univ-lorraine.fr>
Date: Mon, 29 Apr 2024 20:49:55 +0000
Subject: [PATCH] Upload New File

---
 serveur.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 serveur.py

diff --git a/serveur.py b/serveur.py
new file mode 100644
index 0000000..9cfd398
--- /dev/null
+++ b/serveur.py
@@ -0,0 +1,64 @@
+import socket
+import threading
+import tkinter as tk
+
+def accept_connections():
+    while True:
+        client_socket, client_address = server_socket.accept()
+        clients.append(client_socket)
+        message = f"{client_address[0]}:{client_address[1]} connected."
+        chat_box.insert(tk.END, message + "\n")
+        broadcast(message)
+        client_thread = threading.Thread(target=handle_client, args=(client_socket,))
+        client_thread.start()
+
+def handle_client(client_socket):
+    while True:
+        try:
+            message = client_socket.recv(1024).decode()
+            broadcast(message)
+        except ConnectionResetError:
+            client_socket.close()
+            clients.remove(client_socket)
+            broadcast(f"Client {client_socket.getpeername()} disconnected.")
+            break
+
+def broadcast(message):
+    for client_socket in clients:
+        try:
+            client_socket.send(message.encode())
+        except ConnectionResetError:
+            client_socket.close()
+            clients.remove(client_socket)
+
+def send_message():
+    message = message_input.get()
+    broadcast("Server: " + message)
+    chat_box.insert(tk.END, "Server: " + message + "\n")
+    message_input.delete(0, tk.END)
+
+# Create the server socket
+server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+server_socket.bind(('localhost', 5000))
+server_socket.listen(5)
+
+clients = []
+
+# Create the GUI
+window = tk.Tk()
+window.title("Chat Server")
+
+chat_box = tk.Text(window, height=10, width=50)
+chat_box.pack()
+
+message_input = tk.Entry(window, width=50)
+message_input.pack()
+
+send_button = tk.Button(window, text="Send", command=send_message)
+send_button.pack()
+
+# Start accepting connections in a separate thread
+accept_thread = threading.Thread(target=accept_connections)
+accept_thread.start()
+
+window.mainloop()
\ No newline at end of file
-- 
GitLab