From 27791319b5de56d939a1336c79e05fb947b7c31b Mon Sep 17 00:00:00 2001
From: Robin Leber <robin.leber@student.reutlingen-university.de>
Date: Sun, 7 Jan 2024 11:33:33 +0000
Subject: [PATCH] Add server file

---
 server.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 server.py

diff --git a/server.py b/server.py
new file mode 100644
index 0000000..bf4da54
--- /dev/null
+++ b/server.py
@@ -0,0 +1,53 @@
+import socket
+import threading
+
+def handle_client(client_socket, client_address):
+    while True:
+        try:
+            # Empfange Nachricht vom Client
+            data = client_socket.recv(1024)
+            if not data:
+                break
+
+            # Sende die empfangene Nachricht an alle anderen Clients
+            broadcast(data, client_socket, client_address)
+        except:
+            break
+
+    # Client-Socket schließen
+    client_socket.close()
+
+def broadcast(message, sender_socket, sender_address):
+    for client in clients:
+        try:
+            # Sende die Nachricht an alle Clients, außer an den Absender
+            if client != sender_socket:
+                client.send(f"{sender_address}: {message}".encode('utf-8'))
+        except:
+            # Entferne defekte Verbindungen
+            clients.remove(client)
+
+# Server-Konfiguration
+host = '127.0.0.1'
+port = 5555
+
+# Socket erstellen und binden
+server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+server_socket.bind((host, port))
+server_socket.listen(5)
+
+print(f'Server lauscht auf {host}:{port}')
+
+# Liste für die verbundenen Clients
+clients = []
+
+while True:
+    # Warten auf eine Verbindung
+    client_socket, client_address = server_socket.accept()
+
+    # Neuen Thread für jeden verbundenen Client erstellen
+    client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
+    client_thread.start()
+
+    # Client-Socket zur Liste hinzufügen
+    clients.append(client_socket)
-- 
GitLab