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()
+