Ir ao conteúdo
  • Cadastre-se

Python Criar um servidor que utiliza de sockets TCP


Posts recomendados

 

Objetivo
Criar um processo servidor que utiliza de sockets TCP como provido pela biblioteca socket do Python
para implementar um servi¸co que retorna a tradu¸c˜ao em inglˆes para palavras informadas em portuguˆes.
As palavras ser˜ao informadas pela aplica¸c˜ao cliente, cujo processo vocˆe tamb´em deve criar.
Instru¸c˜oes
O servidor, que ser´a chamado de TranslatorServer, deve operar da seguinte forma:
• Retornar a tradu¸c˜ao em inglˆes para uma palavra informada em portuguˆes ap´os o cliente ter se
conectado ao servidor atrav´es da instru¸c˜ao CONECTAR
• Aceitar mensagens do tipo ARMAZENAR usadas para armazenar uma nova tupla de tradu¸c˜ao
(palavra, word)
• Aceitar mensagens do tipo CONSULTAR usadas para listar as palavras que o servidor j´a conhece
a tradu¸c˜ao
• Aceitar mensagens do tipo SAIR que resulta no fechamento da sess˜ao em andamento entre cliente
e servidor
• Aceitar mensagens do tipo FINALIZAR que resulta no fechamento da sess˜ao e no encerramento do
processo servidor
Cen´ario inicial
Quando o TranslatorServer inicializar, conhecer´a inicialmente cinco palavras em portuguˆes e suas
respectivas tradu¸c˜oes. Ele deve armazenar esses dados de inicializa¸c˜ao numa estrutura de dado interna
de tamanho suficiente para armazenar esses cinco pares, permitindo acrescentar pelo menos mais dez
pares. O servidor ent˜ao espera por uma conex˜ao de um cliente a partir de uma porta de comunica¸c˜ao `a
sua escolha.
O cliente (chamado de TranslatorClient) usa das mensagens especificadas acima para enviar comandos
ao servidor. O programa cliente permitir que o usu´ario escolha entre as mensagens dispon´ıveis para
intera¸c˜ao com o servidor.
Descri¸c˜ao detalhada das mensagens
CONECTAR: Essa mensagem ´e enviada do cliente para o servidor para que seja estabelecida uma
conex˜ao entre ambos e iniciada uma sess˜ao. Ao enviar a mensagem, o cliente espera pela mensagem de
retorno do servidor via socket. Ap´os receber e mostrar a mensagem de retorno do servidor o cliente pode
iniciar o envio de outra mensagem. Ao receber uma mensagem CONECTAR do cliente, o servidor deve
retornar a string ”CONECTAR: OK”e esperar por mais instru¸c˜oes do cliente.
Solicita¸c˜oes de tradu¸c˜oes s˜ao enviadas pelo cliente atrav´es de uma string contendo a palavra que deseja
ser traduzida do portuguˆes para o inglˆes. Ao receber a palavra, o servidor deve retornar a palavra em
inglˆes correspondente, caso a palavra j´a esteja em seu banco de dados, como no exemplo a seguir:
Cliente: BOLA
Servidor: BALL
Cliente: JOGO
Servidor: N~AO POSSUO TRADUC¸~AO PARA ESSA PALAVRA
ARMAZENAR: Esta mensagem ´e enviada do cliente para o servidor a fim de registrar novas tradu¸c˜oes.
O processo se inicia enviado a mensagem ”ARMAZENAR”seguida pela palavra em portuguˆes e por
sua equivalente em inglˆes, separadas por espa¸co simples. O servidor deve responder com a mensagem
”ARMAZENAR: OK”. Exemplo:
Cliente: ARMAZENAR JOGO GAME
Servidor: ARMAZENAR: OK
Se o servidor j´a conhece a palavra armazenada, a tradu¸c˜ao correspondente deve ser substitu´ıda por
aquela enviada na mensagem ARMAZENAR.
CONSULTAR: Essa mensagem ´e enviada do cliente para o servidor e faz com que o servidor retorne
todas as palavras armazenadas em sua mem´oria. O cliente envia a string ”QUERY”e o servidor deve
responder com a lista de palavras em portuguˆes armazenadas localmente, finalizada pela mensagem
”CONSULTAR: OK”para confirmar que a opera¸c˜ao de consulta foi completada. Exemplo:
Cliente: CONSULTAR
Servidor: CACHORRO CAVALO JOGO BOLA CASA QUERY: OK
SAIR: Esta mensagem ´e enviada do cliente para o servidor avisando a este que o cliente n˜ao quer mais
continuar a sess˜ao em execu¸c˜ao (que foi inicializada pela mensagem CONECTAR). O cliente envia a
mensagem e ap´os receber a resposta do servidor (SAIR: OK) deve fechar sua conex˜ao. O servidor ap´os
receber a mensagem SAIR deve enviar a mensagem SAIR: OK e ent˜ao esperar por uma nova conex˜ao
com um novo cliente.
Exemplo:
Cliente: SAIR
Servidor: SAIR: OK
FINALIZAR: Mensagem enviada com objetivo de finalizar o servi¸co rodando no servidor. O servidor,
ao receber a mensagem FINALIZAR, responde com FINALIZAR: OK ent˜ao deve fechar todos as suas
conex˜oes em aberto e encerrar sua execu¸c˜ao. Isso far´a com que todas as palavras registradas sejam
perdidas, e se o servidor for reiniciado contar´a novamente apenas com as cinco palavras de inicializa¸c˜ao.
Exemplo:
Cliente: FINALIZAR
Servidor: FINALIZAR: OK

 

Link para o comentário
Compartilhar em outros sites

Bom dia @j.j.t.m

 

Nós não podemos escrever o código para você, nós só podemos lhe auxiliar tirando duvidas e corrigindo algum código que você já tenha feito.

 

Se puder postar o código que você já fez ou colocar em qual parte do exercício você está com duvida, poderemos lhe ajudar melhor :D 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!