Entrar

Projeto: ## "Criando um Servidor de Chat Simples em Python"

Programação em Python

Original Teachy

Python para Redes: Aplicações Cliente-Servidor

Contextualização

A era da informação em que vivemos é altamente dependente das redes de computadores para operar. A comunicação, o compartilhamento de informações, o armazenamento e a recuperação de dados, praticamente qualquer tarefa que realizamos em nosso cotidiano necessita de algum tipo de conexão de rede. Mas quem faz toda essa infraestrutura funcionar é o conjunto de protocolos e aplicativos de rede, e esse é o centro do nosso projeto: "Python para Redes: Aplicações Cliente-Servidor".

Python é uma linguagem de programação amplamente usada devido à sua simplicidade de código e funcionalidades extensíveis através de suas vastas bibliotecas. Uma dessas funcionalidades é a programação de rede, fornecida principalmente através da biblioteca de baixo nível socket que fornece as funcionalidades necessárias para criar aplicações cliente-servidor. Essa biblioteca nos permite lidar com o protocolo TCP/IP, que é a espinha dorsal da internet, bem como com o protocolo UDP que oferece envio rápido, porém sem garantia de entrega.

Os conceitos de Cliente-Servidor são fundamentais na arquitetura de aplicações em rede. No modelo cliente-servidor, geralmente um servidor é um programa de computador, dispositivo ou processos que fornecem funcionalidades para outros programas ou dispositivos, chamados de clientes. Este é um conceito essencial em redes e o entendimento e a prática de construir tais aplicações é fundamental para qualquer profissional que deseja atuar na área de TI ou mesmo para aqueles que buscam ter um conhecimento mais profundo sobre como nossas interações digitais acontecem.

Mas por que Python para redes é importante? Bem, além de Python ser uma linguagem popular e fácil de aprender, ela na verdade é amplamente usada no campo da automação de redes. Empresas ao redor do mundo estão utilizando Python para automatizar suas tarefas de rede, tornando seus trabalhos mais eficientes. Python tem bibliotecas eficazes para lidar com tarefas de rede, permitindo que os engenheiros de rede automatizem várias tarefas de rotina, desde a configuração do switch, gerenciamento de servidores até aplicações web.

Então, vê-se que é crucial entender Python para redes e aplicações cliente servidor, e é isso que iremos fazer neste projeto. Os conceitos que vocês, alunos, irão aprender fornecem a base necessária para criar aplicações robustas e escaláveis em Python, prontas para fazerem parte da vasta rede de computadores que utilizamos todos os dias.

Para se aprofundar mais no tema, sugiro as seguintes leituras:

  1. [Python Socket Programming]
  2. [Learn Python Programming The Hard Way]
  3. [Python Network Programming Cookbook]

Espero que aproveitem o projeto e descubram a importância e o impacto de Python para redes e aplicações cliente-servidor. Boa sorte!

Atividade Prática

"Criando um Servidor de Chat Simples em Python"

Objetivo do Projeto

O objetivo deste projeto é desenvolver um servidor de chat simples usando Python. Este servidor deverá ser capaz de aceitar conexões de vários clientes, recebendo mensagens de qualquer cliente e transmitindo essas mensagens para todos os outros clientes conectados. Ao final do projeto, os alunos irão apresentar um chat funcional construído e testado por eles.

Requisitos Mínimos

  • Python 3.7 ou superior instalado no computador de cada membro do grupo.
  • Um editor de texto para escrever código. Sugiro o uso do [VSCode] que é gratuito e disponível para Windows, Linux e macOS.
  • Conexão com a internet.

Descrição detalhada do Projeto

Este projeto será realizado em grupos de 3 a 5 alunos, com um total de horas de trabalho esperado de duas a quatro horas por aluno, perfazendo um tempo total de até 20 horas para um grupo de 5 pessoas. Como parte do projeto, os alunos serão encorajados a trabalharem juntos (por exemplo, através de discussões, pair programming, revisões de código) para construir o servidor de chat.

Usaremos a biblioteca padrão de soquetes do Python para criar o servidor e os clientes. O servidor deve aceitar conexões TCP em um endereço e porta especificados. Uma vez conectado, cada cliente deverá ser capaz de enviar mensagens para o servidor. Depois de receber uma mensagem de um cliente, o servidor deve enviar a mensagem para todos os outros clientes conectados.

Passo-a-passo detalhado

  1. Configuração inicial do projeto - (30min/1 hora): Comecem por criar um diretório/repo de projeto no computador para onde vocês irão adicionar todos os arquivos de código Python que serão criados daqui para frente. Além disso, esse é o momento para que todos possam se certificar de ter o Python instalado em seus ambientes de trabalho.

  2. Introdução aos Soquetes - (30 min/1 hora): Antes de iniciar a parte de codificação, é importante que cada um do grupo entenda o funcionamento básico dos sockets. Sugiro uma pesquisa na internet com a leitura de pelo menos três recursos diferentes sobre o assunto.

  3. Conhecendo a biblioteca Socket Python (1 hora): Investigar a documentação oficial da biblioteca Socket de Python. Compreender a diferença entre servidor e cliente, quais métodos são usados para estabelecer a comunicação, como enviar e receber mensagens.

  4. Codificação do servidor de chat - (4 horas): Begin digitar o código Python para o servidor de chat. Seguem abaixo as tarefas que o servidor deve realizar:

    i. Ligar à socket: Criar uma nova socket e vinculá-la a um endereço IP específico e porta.

    ii. Aceitar conexões: O servidor deve ser capaz de escutar e aceitar conexões de vários clientes.

    iii. Lidar com as mensagens: Sempre que um cliente enviar uma mensagem, este conteúdo deve ser retransmitido para todos os outros clientes.

  5. Testando o servidor de chat (2 horas): Teste o servidor usando vários clientes. Certifique-se de testar vários cenários, como o que acontece quando um novo cliente entra ou quando um cliente deixa o chat. Certifique-se de que as mensagens são corretamente enviadas para todos os clientes conectados.

  6. Teste de carga (1 hora - opcional): Se o tempo permitir, realizem um teste de carga no servidor. Usem seus conhecimentos obtidos e a criatividade para realizarem este teste.

Entregas

Ao final da semana, cada grupo deve entregar os seguintes itens:

  1. Código do projeto: O código do servidor de Chat deve estar completo e funcional, atendendo a todos os requisitos especificados acima. O projeto deve estar bem documentado com comentários, de modo que seja fácil de entender o que cada parte do código faz.

  2. Relatório do projeto: O relatório deve seguir o formato solicitado, contendo os quatro tópicos principais (introdução, desenvolvimento, conclusões e bibliografia utilizada).

    a. Introdução: O aluno deve contextualizar o tema, sua relevância e aplicação no mundo real, bem como o objetivo deste projeto.

    b. Desenvolvimento: O aluno deve explicitar a teoria por trás do(s) tema(s) central(is) do projeto, explicar a atividade em detalhes, indicar a metodologia utilizada e por fim apresentar os resultados obtidos.

    c. Conclusão: O aluno deve concluir o trabalho retomando seus pontos principais, explicitando os aprendizados obtidos e as conclusões retiradas sobre o projeto.

    d. Bibliografia: Indicar as fontes em que se basearam para trabalhar no projeto como livros, páginas da web, vídeos, etc.

Os relatórios serão avaliados não apenas pelo seu conteúdo técnico, mas também pela capacidade de expressar ideias complexas de forma clara e concisa, e pela qualidade do trabalho em equipe.

Comentários mais recentes
Nenhum comentário ainda. Seja o primeiro a comentar!
Iara Tip

DICA DA IARA

Precisa de materiais para apresentar o tema do projeto em sala?

Na plataforma da Teachy você encontra uma série de materiais prontos sobre esse tema! Jogos, slides, atividades, vídeos, planos de aula e muito mais...

Quem viu esse projeto também gostou de...

Community img

Faça parte de uma comunidade de professores direto no seu WhatsApp

Conecte-se com outros professores, receba e compartilhe materiais, dicas, treinamentos, e muito mais!

Teachy logo

Reinventamos a vida dos professores com inteligência artificial

Instagram LogoLinkedIn LogoTwitter LogoYoutube Logo
BR flagUS flagES flagIN flagID flagPH flagVN flagID flagID flag
FR flagMY flagur flagja flagko flagde flagbn flagID flagID flagID flag

2023 - Todos os direitos reservados

Termos de usoAviso de PrivacidadeAviso de Cookies