diff --git a/dynamic.py b/dynamic.py
new file mode 100644
index 0000000000000000000000000000000000000000..07b4331076e56a97c1113202fecb14961d1441ad
--- /dev/null
+++ b/dynamic.py
@@ -0,0 +1,50 @@
+# Problem 1: Client will einem Chat beitreten und weiß nicht welchen Server er kontaktieren muss
+# Problem 2: ein server will einem netzwerk beitreten
+# for dynamic discovery Broadcast (UDP Only) to all members of a network is necessary
+# 1. neuer server_A sendet Broadcast Nachricht an Broadcastadress (letzte IP-Adresse in einem Netzwerk oder berechnen über OnlineTool Vorlesungfolien) mit seiner eigenen ip-adresse
+#   -> Leader_Server müssen konstant listen auf die Broadcastadress
+#   -> Server_B updatet seine 'group View' (wenn man einen Leader hat nicht notwendig)
+#   -> Leader_Server sendet ip Adressen aller Server zurück
+# 2. Server sammelt alle IP-adressen und speichert diese ab
+#   -> Jeder Server hat eine list 'group Vview mit den adressen aller Server' (wenn man einen Leader hat nicht notwendig)
+
+from base64 import encode
+import socket
+import leaderServer
+
+
+buffer_size = 4096
+
+def broadcast_sender(broadcast_ip, broadcast_port, server_ip, server_uuid):
+    #create UDP socket
+    broadcast_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
+    print(leaderServer.leader)
+    
+    if len(leaderServer.leader) == 0:
+        leaderServer.addLeader(server_uuid)
+        leaderServer.addServer(server_ip)
+        print(leaderServer.leader)
+        print(leaderServer.server_network)
+    else:
+    # send message
+        broadcast_socket.sendto(str(server_ip).encode(), (broadcast_ip, broadcast_port))
+    
+def broadcast_listener(ip_adress, port):
+    print(leaderServer.leader)
+    print(leaderServer.server_network)
+    #UDP socket
+    listen_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
+    #set socket to broadcast and enable reusing adress
+    listen_socket.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST, 1)
+    listen_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1)
+    #bind socket adress and Port
+    listen_socket.bind((ip_adress, port))
+    print('listener up and run at {} : {}'.format(ip_adress, port))
+
+    data, address = listen_socket.recvfrom(buffer_size)
+        
+    #hier jetzt async einbauen für ständige listen?
+    
+    print("Broadcast recieved from Sender: ", data.decode())
+    return data.decode()
+