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
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
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
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
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
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