diff --git a/kclient.py b/kclient.py index 5c8831df40c43c0f53fbd67302e3e86b594f8240..5becb125cfa8748219477412d224dc6bb90b3db1 100644 --- a/kclient.py +++ b/kclient.py @@ -36,8 +36,8 @@ def listen(): # continue #ignores broadcast messages with own ip #################please enable it after testing!!!!!!!!!!!!!!!!!!!S - #if address[0]==MY_IP: - # continue + if address[0]==MY_IP: + continue #####identifyLEADER############ # Erkennen von LEADER-Nachrichten diff --git a/server.py b/server.py index 8e45dd7093c40c520d84eb2f704539e7eb35e10c..5417ce183ac5381db361593a6867fb88d117139b 100644 --- a/server.py +++ b/server.py @@ -28,6 +28,7 @@ def broadcast(message): # Listener function def listen(queue, shared_data): """Receives messages and updates shared state.""" + print(f"Listener from {shared_data['server_id']} is listening on {server_socket}") global active_servers while True: try: @@ -75,7 +76,7 @@ def start_election(queue, shared_data): print("Starting election...") broadcast(f"START_ELECTION: {shared_data['server_id']}") - timeout = time.time() + 20 # 20-second timeout + timeout = time.time() + 20 # 20-second timeout, waiting for other servers highest_id = shared_data['server_id'] while time.time() < timeout: @@ -100,12 +101,12 @@ def start_election(queue, shared_data): except multiprocessing.queues.Empty: continue - if highest_id == shared_data['server_id']: - shared_data['current_leader'] = shared_data['server_id'] - broadcast(f"LEADER: {shared_data['current_leader']}") - print(f"I am the leader: {shared_data['current_leader']}") - else: - print(f"Leader election finished, leader is {highest_id}") + if highest_id == shared_data['server_id']: + shared_data['current_leader'] = shared_data['server_id'] + broadcast(f"LEADER: {shared_data['current_leader']}") + print(f"I am the leader: {shared_data['current_leader']}") + else: + print(f"Leader election finished, leader is {highest_id}") # Heartbeat function