From 7e98b80405ff743a2d70d4d4b6f72b14c7b09355 Mon Sep 17 00:00:00 2001 From: Katharina <katharina.willig@outlook.com> Date: Mon, 25 Nov 2024 22:42:31 +0100 Subject: [PATCH] f --- kclient.py | 13 ++++++++++--- server.py | 8 ++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/kclient.py b/kclient.py index 5becb12..28dff6f 100644 --- a/kclient.py +++ b/kclient.py @@ -14,6 +14,8 @@ MY_IP = socket.gethostbyname(MY_HOST) print(f"Listening for leader response on {broadcast_ip}:{broadcast_port}...") print(MY_HOST,MY_IP) +#stop_listening = False # control for listener + # create client-socket for broadcast client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) @@ -36,8 +38,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 @@ -45,8 +47,11 @@ def listen(): leader_uuid = decoded_message.split(": ")[1] print(f"Leader discovered: {leader_uuid} at {address[0]}:{address[1]}") leader_address = (address[0], broadcast_port) # IP-Adresse des Leaders speichern + #print(leader_address) continue ################################# + if "HEARTBEAT:" in decoded_message: + continue print(decoded_message) @@ -64,6 +69,8 @@ def request_leader(): timeout = time.time() + 5 # 10 Sekunden auf Antwort warten while time.time() < timeout: if leader_address: + #print("leader address:", leader_address) + #client_socket.sendto("REQUEST_LEAD finish".encode(), leader_address) return time.sleep(0.5) # Warten, bis eine Antwort vom Leader eintrifft #print("No leader found. Unable to send messages.") @@ -84,7 +91,7 @@ def sender(): just_nickname= f"{nickname} entered the chat".encode() #client_socket.sendto(just_nickname, (broadcast_ip, broadcast_port)) client_socket.sendto(just_nickname, leader_address) - + #print("is it leader adresse here", leader_address) while True: #allows the client to send any message message = input("") diff --git a/server.py b/server.py index 9e3afad..3559eae 100644 --- a/server.py +++ b/server.py @@ -49,7 +49,7 @@ def listen(queue, shared_data): if "REQUEST_LEAD" in decoded_message: if shared_data['current_leader']: - while True: + #while "REQUEST_LEAD finish" not in decoded_message: response = f"LEADER: {shared_data['current_leader']}".encode() time.sleep(2) #wait before sending response that client can prepare for answer server_socket.sendto(response, (broadcast_ip, broadcast_port)) @@ -82,9 +82,9 @@ def start_election(queue, shared_data): while time.time() < timeout: try: message = queue.get(timeout=1) #waits 1 sec for a message - if shared_data['server_id']==sender_uuid: - continue - elif "START_ELECTION" in message: + #if shared_data['server_id']==sender_uuid: + # continue + if "START_ELECTION" in message: sender_uuid = message.split(": ")[1] active_servers[sender_uuid] = time.time() print(f"Received UUID for election: {sender_uuid}") -- GitLab