import zmq
import socket
import report_service
import json
import math

context = zmq.Context()
suma = context.socket(zmq.REQ)
suma.connect("tcp://localhost:8000")

result = {
}


# constantes
op = "log"
port = "8005"

# avisar que el servicio esta activo
nombre_equipo = str(socket.gethostname())
print(nombre_equipo, type(nombre_equipo))
reportJSON = report_service.reportService(op, nombre_equipo, port)
print(reportJSON, type(reportJSON))
#msm = "+"+","+nombre_equipo+","+"8001"
suma.send_pyobj(reportJSON)
acuse = suma.recv_string()
print(acuse)


# contexto para reply
context_rep = zmq.Context()
socket = context_rep.socket(zmq.REP)
socket.bind("tcp://*:"+port)
message = socket.recv_pyobj()



with open('data.json', 'r') as file:
    datas = json.load(file)
            
operando1 = datas.get("operandouno")
print(operando1)


with open('data.json', 'r') as file:
    datas = json.load(file)
            
operando2 = datas.get("operandodos")
print(operando2)


print("operandos: ", operando1, " ", operando2)

# --------------------operacion----------------------
try:
    resultado = math.log(int(operando1), int(operando2))
    resultado = str(resultado)
except:
    resultado = "los argumentos estan fuera del dominio"


print("resultado: ", resultado)
result['respuesta'] = resultado

with open('result.json', 'w') as file:
        json.dump(result, file)

with open('result.json', 'r') as file:
    dat = json.load(file)

archivo = dat.get("respuesta")
print(archivo)

socket.send_pyobj(archivo)





