diff --git a/server.py b/server.py index 7a2eb5e95d18ac5df93693dc22e90a76bc689df6..bc6284175306dfd8063026737f21d6ce2b4bd88c 100644 --- a/server.py +++ b/server.py @@ -41,8 +41,8 @@ class Server(): def print_group_view(self): print("Group view is:", self.serverList) - #This function enables the server to listen to the server multicast port and reply the ip address - def MulticastListenAndReply(self): + #This function enables the server to listen to the server multicast port and reply its ip address + def listen_for_server_and_reply(self): # if my IP is not in the server list add it if MY_IP not in self.serverList: @@ -50,18 +50,18 @@ class Server(): # create socket bind to server address - multicast_listen_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - multicast_listen_sock.bind(('', SERVER_MULTICAST_PORT)) + server_listen_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + server_listen_sock.bind(('', SERVER_MULTICAST_PORT)) # tell the os to add the socket to the multicast group multicast_group = socket.inet_aton(MULTICAST_GROUP_IP) mreg = struct.pack('4sL', multicast_group, socket.INADDR_ANY) - multicast_listen_sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreg) + server_listen_sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreg) while True: - data, address = multicast_listen_sock.recvfrom(1024) + data, address = server_listen_sock.recvfrom(1024) if data: newServer_address = data.decode() @@ -75,7 +75,7 @@ class Server(): reply_message = MY_IP - multicast_listen_sock.sendto(str.encode(reply_message), address) + server_listen_sock.sendto(str.encode(reply_message), address) self.printwt('Replied my IP to new participant') @@ -86,19 +86,19 @@ class Server(): #this function enables the server to send a multicast to the server group and receive the answers of existing members - def MulticastSendAndReceive(self): + def server_send_and_receive(self): # create socket multicast_group = (MULTICAST_GROUP_IP, SERVER_MULTICAST_PORT) - multicast_send_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + server_send_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Set a timeout so the socket does not block indefinitely when trying to receive data. - multicast_send_sock.settimeout(2) + server_send_sock.settimeout(2) # Set the time-to-live for messages to 1 so they do not go past the local network segment. - multicast_send_sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 1) + server_send_sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 1) message = MY_IP - multicast_send_sock.sendto(message.encode(), multicast_group) + server_send_sock.sendto(message.encode(), multicast_group) self.printwt("Sent my IP to server group") # if my IP is not in the server list add it @@ -120,7 +120,7 @@ class Server(): try: # receive reply data from the other participants - reply, address = multicast_send_sock.recvfrom(1024) + reply, address = server_send_sock.recvfrom(1024) if reply: reply_address = reply.decode() @@ -140,7 +140,7 @@ class Server(): break if num_responses == 1: - multicast_send_sock.close() + server_send_sock.close() self.isLeader = True self.leader_uuid = self.uuid # Hier wird die uuid-Adresse des Leaders zugewiesens time.sleep(1) @@ -150,24 +150,24 @@ class Server(): # Listen to client multicast (request) and reply with Server IP - def ListenForClientAndReply(self): + def listen_for_client_and_reply(self): # Create a UDP socket - listen_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + client_listen_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Enable reusing addresses - listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + client_listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Bind socket to address and port - listen_socket.bind((MY_IP, CLIENT_MULTICAST_PORT)) + client_listen_socket.bind((MY_IP, CLIENT_MULTICAST_PORT)) # tell the os to add the socket to the multicast group multicast_group = socket.inet_aton(MULTICAST_GROUP_IP) mreg = struct.pack('4sL', multicast_group, socket.INADDR_ANY) - listen_socket.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreg) + client_listen_socket.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreg) # print("Listening to multicast messages") # Receiving multicast massage while True: - data, addr = listen_socket.recvfrom(1024) + data, addr = client_listen_socket.recvfrom(1024) if data: self.printwt(data.decode()) @@ -175,7 +175,7 @@ class Server(): # if Iam the leader, answer the client including my IP if self.uuid == self.leader_uuid: reply_message = MY_IP - listen_socket.sendto(str.encode(reply_message), addr) + client_listen_socket.sendto(str.encode(reply_message), addr) self.printwt('Replied my IP to new client') def handle_client(self, client_socket, client_address): @@ -186,13 +186,13 @@ class Server(): data = client_socket.recv(1024) if not data: break - self.multicast(data, client_socket) + self.multicast_client_massages(data, client_socket) except: self.clients.remove(client_socket) break - def multicast(self, message, sender_socket): + def multicast_client_massages(self, message, sender_socket): for client in self.clients: try: if client != sender_socket: @@ -309,13 +309,13 @@ class Server(): if __name__== '__main__': server = Server() - thread2 = threading.Thread(target = server.MulticastListenAndReply) + thread2 = threading.Thread(target = server.listen_for_server_and_reply) thread2.start() - thread3 = threading.Thread(target = server.MulticastSendAndReceive) + thread3 = threading.Thread(target = server.server_send_and_receive) thread3.start() - thread1 = threading.Thread(target = server.ListenForClientAndReply) + thread1 = threading.Thread(target = server.listen_for_client_and_reply) thread1.start() thread_election = threading.Thread(target = server.basic_lcr)