def message_handler(conn, addr): raw_data = conn.recv(1024) data = protocolUtils.MessageHandler(raw_data).message_loads() server_interface = switch_operations(data[1]) result = protocolUtils.MessageBuilder(server_interface[0], server_interface[1], False).message_builder() conn.send(result.encode())
def handle(self): protocol_instance = protocolUtils.MessageHandler(self.request.recv(1024)) array_operands = protocol_instance.message_loads() if array_operands[1] == "+": result = self.operation(array_operands[0], array_operands[2]) self.request.send(str(result).encode()) else: self.request.send("Bad Request")
def message_handler(conn, address): while True: raw_data = conn.recv(1024) received_data = protocolUtils.MessageHandler(raw_data).message_loads() if received_data[0] == "list_groups": print("New list_groups operation from ", address) conn.send(process_group_instance.get_all_groups()) elif received_data[0] == "create_group": print("New group created by ", address) process_group_instance.add_process(address) conn.send("Group already created.".encode()) elif received_data[0] == "join_group": error = False try: group_id = int(received_data[2]) except ValueError as e: error = True conn.send("Incorrect group id.".encode()) print("New request to join into a group from ", address, " to the group ", group_id) result = process_group_instance.add_process(address, group_id) if result: conn.send("You're now into the group".encode()) else: conn.send("Incorrect group id.".encode()) elif received_data[0] == "send_message": error = False try: group_id = int(received_data[2]) except ValueError as e: error = True conn.send("Incorrect group id.".encode()) list_members = process_group_instance.get_group(group_id) print("New message from ", address, " to the group ", group_id) if list_members: send_messages = thread.Thread(target=thread_broadcast_group, args=( list_members, received_data[1], )) send_messages.start() else: error = True conn.send( "Incorrect group id or the group doesn't have members.". encode()) if not error: conn.send("Message sent.".encode()) else: conn.send("yesss".encode())
def message_handler(conn, addr): data = protocolUtils.MessageHandler(conn.recv(1024)).message_loads() print("New operation in queue ", data[0], " ", data[2]) try: result = str(float(data[0]) - float(data[2])) except ValueError: result = "The operands requires be numbers" conn.send(result.encode())
def message_handler(conn, addr): raw_data = conn.recv(1024) data = protocolUtils.MessageHandler(raw_data).message_loads() server_interface = switch_operations(data[1]) server_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_instance.connect((server_interface[0], server_interface[1])) server_instance.send(raw_data) result = server_instance.recv(1024) conn.send(result)
def message_handler(conn, addr): data = protocolUtils.MessageHandler(conn.recv(1024)).message_loads() print("New operation in queue ", data[0], " ", data[2]) try: val1 = float(data[0]) val2 = float(data[2]) except ValueError: result = "The operands requires be numbers" conn.send(result.encode()) try: result = str(math.pow(val1, (1 / val2))) conn.send(result.encode()) except ZeroDivisionError as e: result = "You cant do root by 0" conn.send(result.encode())
def main(): socket_instance = socket.socket() socket_instance.connect((protocolUtils.host, protocolUtils.port)) num1 = input("Ingrese un numero: ") num2 = input("Ingrese un numero: ") op = input("Ingrese la operacion a realizar: ") message_builder = protocolUtils.MessageBuilder(num1, num2, op) socket_instance.send(message_builder.operation.encode()) server = protocolUtils.MessageHandler( socket_instance.recv(1024)).message_loads() server_host, server_port = server[0], int(server[2]) # Close the actual session to start the new with the server of the operation socket_instance.close() socket_instance = socket.socket() socket_instance.connect((server_host, server_port)) socket_instance.send(message_builder.message_builder().encode()) result = socket_instance.recv(1024).decode() print("Result: ", result)
import socket import lib.ProtocolUtils as protocolUtils if __name__ == "__main__": socket_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM) socket_instance.connect(("localhost", 9999)) num1 = input("Ingrese un numero: ") num2 = input("Ingrese un numero: ") op = input("Ingrese la operacion a realizar: ") message_builder = protocolUtils.MessageBuilder(num1, num2, op) socket_instance.send(message_builder.message_builder().encode()) server_interface = protocolUtils.MessageHandler( socket_instance.recv(1024)).message_loads() server_instance = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_instance.connect((server_interface[0], int(server_interface[2]))) server_instance.send(message_builder.message_builder().encode()) result = server_instance.recv(1024) print("Resultado de la operacion fue ", result.decode("utf-8")) socket_instance.close()