Exemple #1
0
 def logout(self):
     ms = provaonline_pb2.MENSAGEM()
     ms.logout.token = self.token  #string
     mr = self.send(ms.SerializeToString())
     if mr.status.codigo == NACK:
         return False, mr.status.descricao
     else:
         return True, None
Exemple #2
0
 def reqresultado(self, id_prova):
     ms = provaonline_pb2.MENSAGEM()
     ms.reqresultado.token = self.token  #string
     ms.reqresultado.id_prova = id_prova  #string
     mr = self.send(ms.SerializeToString())
     if mr.HasField('status'):
         return False, mr.status.descricao
     else:
         return True, mr.ackreqresultado
Exemple #3
0
 def login(self, usuario, senha):
     ms = provaonline_pb2.MENSAGEM()
     ms.login.login = usuario  #string
     ms.login.senha = senha  #string
     mr = self.send(ms.SerializeToString())
     if mr.acklogin.status.codigo == NACK:
         return False, mr.acklogin.status.descricao
     else:
         self.token = mr.acklogin.token
         return True, None
Exemple #4
0
 def send(self, data):
     self.socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
     self.socket.bind((self.ip_bind, self.port_bind))
     self.socket.connect((self.ip_connect, self.port_connect))
     self.socket.send(data)  # envia dados pelo socket
     data = self.socket.recv(1024)
     self.socket.shutdown(SHUT_RDWR)
     msg = provaonline_pb2.MENSAGEM()
     msg.ParseFromString(data)
     return msg
Exemple #5
0
 def reqresp(self, id_prova, respostas):  # respostas é uma lista
     ms = provaonline_pb2.MENSAGEM()
     ms.reqresp.token = self.token  #string
     ms.reqresp.id_prova = id_prova  #string
     for r in respostas:
         rp = ms.reqresp.respostas.add()
         rp.id = r.id
         if r.HasField('codigos'):
             for c in r.codigos.codigos:
                 rp.codigos.codigos.append(c)
         else:
             rp.texto = r.texto
     mr = self.send(ms.SerializeToString())
     if mr.status.codigo == NACK:
         return False, mr.acklogin.status.descricao
     else:
         return True, None
Exemple #6
0
    usuario = "aluno"
    senha = "aluno"
    token = '378rbf9sd'
    token_valido = None
    id_prova = '1'
    questoes = pegando_questoes()
    respostas = None
    nota = 10
    resultados = pegando_resultados()

    while True:
        print('\nEsperando conexão...')
        con, addr = s.accept()
        data = con.recv(1024)

        msg = provaonline_pb2.MENSAGEM()
        msg.ParseFromString(data)
        mr = provaonline_pb2.MENSAGEM()
        if msg.HasField('login'):
            if msg.login.login == usuario and msg.login.senha == senha:
                mr.acklogin.token = token
                token_valido = token
                mr.acklogin.status.codigo = ACK
                print("ACK LOGIN")
            else:
                mr.acklogin.status.codigo = NACK
                print("NACK LOGIN")

        elif msg.HasField('reqprova'):
            if msg.reqprova.id_prova == id_prova and msg.reqprova.token == token_valido:
                mr.ackreqprova.id_prova = id_prova