Ir ao conteúdo
  • Cadastre-se

Diego_cndd

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Tudo que Diego_cndd postou

  1. No Cliente, existem dois botões: um inclui e outro sai da tela. Mas o servidor precisa receber esses comandos de forma separada. Até agora, o código do servidor está assim: while True: data, adress = sock.recvfrom(4000) ##o laço nao chega aqui if data.decode('ascii') in dicty: sock.sendto(dicty[data.decode('ascii')].encode('ascii'), adress) else: sock.sendto(('0'.encode('ascii')), adress) sock.bind((host, port)) while True: data2, adress = sock.recvfrom(4000) if data2.decode('ascii')=='0': sock.sendto('SAIR'.encode('ascii'), adress) sys.exit(0) Eles estão separados por um 'while True', mas o código lê apenas o primeiro.
  2. A questão é a seguinte: eu tenho que fazer um dicionário colaborativo onde as pessoas procuram por palavras e o servidor retorna o significado. Mas, se as pessoas não acharem as palavras, elas podem cadastrar um nova, pondo o termo e o significado. Ou seja: o socket pode receber duas requisições: buscar e cadastrar. O problema é que não sei como implementar os dois no servidor, separando o que o servidor vai fazer numa hora e em outra, quando o cliente quiser. Até agora, o servidor está dessa forma: import socket import json dicty = { 'the' : 'o, a, os, as', 'hello' : 'ola', 'hi' : 'oi', 'good' : 'bom', 'ugly' : 'feio', 'bad' : 'ruim, mal', 'pretty' : 'lindo(a)', 'happy' : 'feliz', 'sad' : 'triste', 'yes' : 'sim', 'no' : 'nao' } def adiciona(word, palavra, dicty): with open('book', 'w', encoding='utf-8') as f: dicty[word] = palavra json.dump(dicty, f) with open('book', 'r') as f: dicty = json.load(f) print(dicty) port = 5000 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) host = socket.gethostbyname(socket.gethostname()) sock.bind((host, port)) while True: data, adress = sock.recvfrom(4000) text = data.decode('ascii') teste = text in dicty if teste==1: sig = dicty.get(str(text)) sock.sendto((sig.encode('ascii')), adress) if teste==0: sock.sendto(('0'.encode('ascii')),adress) A grande questão é que o servidor adiciona, mas se eu chamar dentro do laço "while true" o módulo "adiciona()", ele vai fazer os dois juntos (buscar e cadastrar). Como organizar isso?
  3. O problema está exatamente na persistência de dados. Os dados não se mantêm, não se incluem por definitivo no dicionário.
  4. Como adicionar um termo e seu significado em Python. Eu tentei assim: dicty[palavra] = significado Mas não dá certo. Enquanto o programa está rodando, ele adiciona e responde com True em: palavra in dicty Porém, quando o programa encerra, o termo é deletado e eu preciso cadastrar novamente. Como cadastrar de forma permanente?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!