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
Exemple #2
0
    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
#----------------------------------------------------------------------------------------
Exemple #5
0
#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:])