diff --git a/server.py b/server.py index 65fc2513d073f04b76be0d30dc19fceee1c75689..7f20d57e2c25aca99eeae88828f52ed5135fe779 100644 --- a/server.py +++ b/server.py @@ -88,6 +88,7 @@ class Server(): time.sleep(1) self.print_group_view() + # self.basic_lcr() self.printwt(f'The current leader IP is: {self.leader_uuid}') @@ -144,7 +145,7 @@ class Server(): except socket.timeout: break - if num_responses == 1: + if num_responses == 1: multicast_send_sock.close() self.isLeader = True self.leader_uuid = self.uuid # Hier wird die uuid-Adresse des Leaders zugewiesen @@ -179,7 +180,7 @@ class Server(): self.printwt(data.decode()) # if Iam the leader, answer the client including my IP - if MY_IP == self.leader_uuid: + if self.uuid == self.leader_uuid: reply_message = MY_IP listen_socket.sendto(str.encode(reply_message), addr) self.printwt('Replied my IP to new client') @@ -207,10 +208,14 @@ class Server(): self.clients.remove(client) def basic_lcr(self): + print('New leader election starts') + print('++++++++++++++++++++++++++') + print('server list') + print(self.serverList) print('\nWaiting to receive election message...\n') data, address = ring_socket.recvfrom(1024) election_message = json.loads(data.decode()) - neighbour = get_neighbour(form_ring(), MY_IP, 'left') + neighbour = get_neighbour(form_ring(self.serverList), MY_IP, 'left') if election_message['isLeader']: self.leader_uuid = election_message['mid'] @@ -254,6 +259,8 @@ if __name__== '__main__': thread1 = threading.Thread(target = server.ListenForClientAndReply) thread1.start() + server.basic_lcr() + # Socket erstellen und binden server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((MY_IP, 5555))