def comunica(endereco_servidor, mensagem): #Cria um socket TCP/IP sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #registra no log que esta conectando ao servidor l = "Conectando ao servidor %s na porta %s" % endereco_servidor funcoes.salvar(ARQUIVO_LOG, l) try: #Conecta o socket a porta onde o servidor esta escutando sock.connect(endereco_servidor) except Exception, e: #caso nao consiga conectar com o servidor, registra no log o erro e retorna None l = "Erro ao conectar com o servidor %s na porta %s" % endereco_servidor funcoes.salvar(ARQUIVO_LOG, l) return None
return (frete, qualidade_min) lista = funcoes.ler_deck() aux = lista.copy() frete, qualidade_min = menu_config() while True: funcoes.cls() funcoes.imprimir(aux.final(funcoes.calcular(aux.copy()), frete), frete) command = input("Press 1-Remover carta 2-Adicionar carta Q-Sair ") if command == "q" or command == "Q": break if command == "1": print("Escolha (pelo número) qual carta deseja remover da lista antes de ser recalculada (pode colocar uma lista de números também):") aux.imprime_nome_cartas() rem = input().split() list_rem = [] for i in rem: list_rem.append(aux.index(int(i))) for i in list_rem: aux.remove(i) if command == "2": nome = input("Digite o nome da carta: ") craw.gerar_lista_de_ofertas_carta(nome, aux) #craw.gerar_lista_de_ofertas_carta(nome, lista) aux.remove_frete(frete) aux.remove_qualidade(qualidade_min) funcoes.salvar(aux.final(funcoes.calcular(aux.copy()), frete), frete)
'\nO que deseja fazer:\n\n' '1 - Listar tarefas\n' '2 - Adicionar nova tarefa\n' '3 - Desfazer última tarefa\n' '4 - Refazer última tarefa\n' '5 - Sair\n\n' 'Opção: ' ) print() if op == '5': print('-- Até mais! --') # Salvando tarefas no txt t.salvar() break elif op == '1': print('-- Listando tarefas --') t.lista() elif op == '2': print('-- Adicinando tarefas --') tarefa = input('Digite sua nova tarefa: ') t.adiciona(tarefa) elif op == '3': print('-- Desfazendo última tarefa --') t.undo()
#Conecta o socket a porta onde o servidor esta escutando sock.connect(endereco_servidor) except Exception, e: #caso nao consiga conectar com o servidor, registra no log o erro e retorna None l = "Erro ao conectar com o servidor %s na porta %s" % endereco_servidor funcoes.salvar(ARQUIVO_LOG, l) return None retorno = "" try: #Caso a mensagem tenha tamanho maior que 1, entao o primeiro byte representa a operacao #e o restante representa o valor if len(mensagem) > 1: l = "Enviando a mensagem: {} {}".format(funcoes.converteCodigoOperacaoParaString(mensagem[0]), mensagem[1:]) else: l = "Enviando a mensagem: %s" % funcoes.converteCodigoOperacaoParaString(mensagem) funcoes.salvar(ARQUIVO_LOG, l) #envia a mensagem sock.sendall(mensagem) #recebe o retorno do servidor retorno = sock.recv(1024) l = "Recebi a mensagem: {}".format(funcoes.converteCodigoOperacaoParaString(retorno)) funcoes.salvar(ARQUIVO_LOG, l) finally: l = "Fechando socket" funcoes.salvar(ARQUIVO_LOG, l) #fecha o socket e retorna a mensagem que o servidor retornou sock.close() return retorno #----------------------------------------------------------------------------------------
#guarda o ip em que o servidor esta rodando ip_servidor = sys.argv[2] #argumento passado na execucao do programa que indica a porta em que o servidor ira "ouvir" porta = int(sys.argv[1]) #Faz bind do socket na porta endereco_servidor = (ip_servidor, porta) sock.bind(endereco_servidor) sock.listen(1) while True: #espera uma conexao l = "Esperando uma conexao..." funcoes.salvar(ARQUIVO_LOG, l) conexao, endereco_cliente = sock.accept() try: l = "Conectei com o cliente: {}".format(str(endereco_cliente[0])) funcoes.salvar(ARQUIVO_LOG, l) #recebe mensagem do cliente conectado dadosRecebidos = conexao.recv(1024) #Caso a mensagem tenha tamanho maior que 1, entao o primeiro byte representa a operacao #e o restante representa o valor if len(dadosRecebidos) > 1: l = "Recebi a mensagem: {} {}".format( funcoes.converteCodigoOperacaoParaString(dadosRecebidos[0]), dadosRecebidos[1:])