Skip to content
Snippets Groups Projects
Commit 7b56a0a0 authored by Alexander Schulz's avatar Alexander Schulz
Browse files

feedback when non existing group selected

parent 0d7bdd18
No related branches found
No related tags found
No related merge requests found
...@@ -14,10 +14,15 @@ class Client(multiprocessing.Process): ...@@ -14,10 +14,15 @@ class Client(multiprocessing.Process):
def run(self): def run(self):
print("Client: Up and running") print("Client: Up and running")
while True:
action = input("Client: Enter type of action ('r' to register): ") action = input("Client: Enter type of action ('r' to register): ")
if (action == "r"): if (action == "r"):
group = input("Client: Which group dou you want to join? ") group = input("Client: Which group dou you want to join? ")
self.register("register", group) success = self.register("register", group)
if success == 0:
continue
send_thread = threading.Thread(target=self.send_message) send_thread = threading.Thread(target=self.send_message)
receive_thread = threading.Thread(target=self.receive_messages) receive_thread = threading.Thread(target=self.receive_messages)
...@@ -31,9 +36,6 @@ class Client(multiprocessing.Process): ...@@ -31,9 +36,6 @@ class Client(multiprocessing.Process):
send_thread.join() send_thread.join()
receive_thread.join() receive_thread.join()
else:
message = input("Client: Enter message:")
print(message)
def register(self, message_type, message_group): def register(self, message_type, message_group):
PORT = 49153 PORT = 49153
...@@ -49,6 +51,9 @@ class Client(multiprocessing.Process): ...@@ -49,6 +51,9 @@ class Client(multiprocessing.Process):
print('Client: Received message from server: ', data.decode('utf-8')) print('Client: Received message from server: ', data.decode('utf-8'))
if data.decode('utf-8') == "Group does not exist":
success = 0
else:
# search for server ip_address in message from server # search for server ip_address in message from server
ip_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b' ip_pattern = r'\b(?:\d{1,3}\.){3}\d{1,3}\b'
matches = re.findall(ip_pattern, data.decode('utf-8')) matches = re.findall(ip_pattern, data.decode('utf-8'))
...@@ -59,8 +64,12 @@ class Client(multiprocessing.Process): ...@@ -59,8 +64,12 @@ class Client(multiprocessing.Process):
#self.registered_server = server #self.registered_server = server
print("Client: My server: ", self.registered_server_address) print("Client: My server: ", self.registered_server_address)
success = 1
broadcast_socket.close() broadcast_socket.close()
return success
def send_message(self): def send_message(self):
PORT = 50001 PORT = 50001
......
...@@ -456,6 +456,7 @@ class Server(multiprocessing.Process): ...@@ -456,6 +456,7 @@ class Server(multiprocessing.Process):
if group not in self.local_group_cache: if group not in self.local_group_cache:
print(self.server_id+": "+"Group "+group+" doesn't exist.") print(self.server_id+": "+"Group "+group+" doesn't exist.")
self.send_negative_reply_to_client(client_addr)
else: else:
print(self.server_id+": "+"Group "+group+" exists") print(self.server_id+": "+"Group "+group+" exists")
...@@ -482,6 +483,14 @@ class Server(multiprocessing.Process): ...@@ -482,6 +483,14 @@ class Server(multiprocessing.Process):
return addr return addr
def send_negative_reply_to_client(self, client_addr):
PORT = 1001
message = "Group does not exist"
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.connect((self.server_address, PORT))
server_socket.sendto(str.encode(message), client_addr)
server_socket.close()
def send_reply_to_client(self, server_addr, client_addr): def send_reply_to_client(self, server_addr, client_addr):
PORT = 1000 PORT = 1000
message = 'Hi ' + client_addr[0] + ' this is your groupchat server: ' + server_addr message = 'Hi ' + client_addr[0] + ' this is your groupchat server: ' + server_addr
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment