diff --git a/__pycache__/sync.cpython-313.pyc b/__pycache__/sync.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..39ab3f1aff8c2617a38fe17a399b3ae4772a1572
Binary files /dev/null and b/__pycache__/sync.cpython-313.pyc differ
diff --git a/kclient.py b/kclient.py
index 1cbca2708883e1dc3b69ee202b31cb4cb0e225e1..9e537d689b24dbc53eee51e61547719d56d09888 100644
--- a/kclient.py
+++ b/kclient.py
@@ -4,36 +4,52 @@ import threading
 broadcast_ip = '255.255.255.255'#ip ggfs ändern
 broadcast_port = 55555
 
+#local host information
+MY_HOST = socket.gethostname()
+#socket.gethostbyname(socket.gethostname()) #getip
+MY_IP = socket.gethostbyname(MY_HOST)
+#print(f"host:{MY_HOST} and ip: {MY_IP}")
+                              
 # Erstelle den Client-Socket für Broadcast
 client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
 client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 client_socket.bind(('', broadcast_port))  # Lausche auf Broadcast-Port
 
-nickname = input("Enter your nickname: ")
+#nickname = input("Enter your nickname: ")
 
 def receive():
     """Empfängt Nachrichten vom Server und anderen Clients."""
     while True:
         try:
-            data, _ = client_socket.recvfrom(4096)
+            data, address = client_socket.recvfrom(4096)
             decoded_message = data.decode()
 
             # Ignoriere Nachrichten mit Server-Kennung
             if decoded_message.startswith("["):
                 continue
+            #ignores broadcast messages with own ip
+            if address[0]==MY_IP:
+                continue
 
             print(decoded_message)
+
         except socket.error as e:
             print(f"An error occurred: {e}")
             break
 
 def write():
     """Ermöglicht dem Benutzer, Nachrichten zu schreiben und zu senden."""
+    nickname = input("Enter your nickname: ")
+    just_nickname= f"{nickname} entered the chat".encode()
+    client_socket.sendto(just_nickname, (broadcast_ip, broadcast_port))
+
     while True:
         message = input("")
+
         if message.strip():
-            full_message = f"{nickname}: {message}".encode()
+            full_message = f"{nickname}: {message}".encode()#entered the chat?
+
             client_socket.sendto(full_message, (broadcast_ip, broadcast_port))
 
 # Starte den receive-Thread
diff --git a/kserver.py b/kserver.py
index 3f597a6e70376f750ce44d7c30d530b4c8dccf5a..b3b5dee7597cb1f3e846c018b85fe9a4f44d26b1 100644
--- a/kserver.py
+++ b/kserver.py
@@ -17,7 +17,7 @@ server_socket.bind(('', broadcast_port))
 print(f"Server is running with ID {server_id} and broadcasting on port {broadcast_port}...")
 
 def broadcast(message):
-    """Sendet eine Nachricht an alle im Netzwerk mit Server-ID."""
+    """Sendet eine Nachricht an alle im Netzwerk mit Server-ID an Server."""
     full_message = f"[{server_id}] {message}".encode()
     server_socket.sendto(full_message, (broadcast_ip, broadcast_port))
 
@@ -32,10 +32,15 @@ def receive():
             if decoded_message.startswith(f"[{server_id}]"):
                 continue  # Ignoriere die Nachricht, wenn sie vom Server selbst stammt
 
+            if decoded_message.__contains__("entered"):
+                print(f"{client_address} entered the chat.")
+
             print(f"Received from {client_address}: {decoded_message}")
 
-            # Broadcast die Nachricht an alle Clients
+            # Broadcast die Nachricht an alle Clients außer dem Sender
+            #if server_id!=client_address:
             broadcast(decoded_message)
+            
 
         except socket.error as e:
             print(f"An error occurred: {e}")
diff --git a/sync.py b/sync.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3b6d25a109362ba0590f80b0010af6bfab8228b
--- /dev/null
+++ b/sync.py
@@ -0,0 +1,15 @@
+import leaderServer
+
+
+def check_arrays(received_server_network, received_leader):
+
+    #aktuellen zustand des servers prüfen:
+    if received_server_network != leaderServer.server_network:
+        print("Unterschiede im Server-Netzwerk gefunden. Aktualisiere das Netzwerk...")
+        leaderServer.server_network = received_server_network  # Update das Netzwerk
+        print(f"new network: {received_server_network} or {leaderServer.server_network}")
+    
+    if received_leader != leaderServer.leader:
+        print("Unterschiede im Leader gefunden. Aktualisiere den Leader...")
+        leaderServer.leader = received_leader  # Update den Leader
+        print(f"new network: {received_leader} or {leaderServer.leader}")
\ No newline at end of file