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())
Beispiel #4
0
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())
Beispiel #5
0
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)
Beispiel #6
0
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())
Beispiel #7
0
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)
Beispiel #8
0
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()