Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Relatório de Aula Prática - Programação Para Redes
1. Introdução
Este relatório apresenta o desenvolvimento de uma atividade prática da disciplina Programação para Redes, cujo objetivo é compreender os conceitos fundamentais de comunicação em rede por meio da implementação de uma aplicação cliente-servidor simples em Python, utilizando sockets. Essa prática permite aos alunos visualizar na prática como aplicações de rede trocam informações entre si, conhecimento essencial para profissionais de Tecnologia da Informação (TI).
2. Objetivos
O objetivo principal desta atividade prática é desenvolver uma aplicação básica que utilize sockets para comunicação entre um servidor e um cliente. Dessa forma, busca-se compreender os fundamentos da comunicação em rede, explorar a criação e utilização de sockets em Python e reforçar o modelo cliente-servidor como paradigma essencial em sistemas distribuídos.
3. Conceitos Fundamentais
• Sockets: São pontos finais de comunicação entre dois dispositivos em rede. Permitem fluxo bidirecional e são utilizados em protocolos como HTTP e DNS.
• Cliente e Servidor: O servidor é a aplicação que escuta conexões, enquanto o cliente se conecta a ele. Essa relação é a base da comunicação em redes.
• Protocolos: O TCP (Transmission Control Protocol) é o mais utilizado por garantir a entrega confiável de dados. Já o UDP (User Datagram Protocol) oferece comunicação mais rápida, mas sem garantias de entrega.
4. Métodos e Implementação
A implementação foi realizada em Python, utilizando a biblioteca padrão 'socket'. Foram desenvolvidos dois programas: um servidor e um cliente. O servidor é responsável por aceitar conexões e responder às mensagens recebidas, enquanto o cliente estabelece a conexão e envia mensagens ao servidor.
Exemplo de servidor em Python:
import socket
servidor_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
servidor_socket.bind(('localhost', 12345))
servidor_socket.listen(1)
print('Aguardando conexão...')
cliente_socket, endereco = servidor_socket.accept()
print(f'Conectado a {endereco}')
dados = cliente_socket.recv(1024).decode()
print(f'Recebido do cliente: {dados}')
cliente_socket.send('Olá, cliente!'.encode())
cliente_socket.close()
servidor_socket.close()
Exemplo de cliente em Python:
import socket
cliente_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cliente_socket.connect(('localhost', 12345))
cliente_socket.send('Olá, servidor!'.encode())
resposta = cliente_socket.recv(1024).decode()
print(f'Recebido do servidor: {resposta}')
cliente_socket.close()
5. Resultados
Ao executar os programas, observou-se que o cliente conseguiu se conectar ao servidor, enviar uma mensagem e receber uma resposta. O servidor, por sua vez, exibiu corretamente a mensagem recebida e enviou de volta uma resposta confirmando a comunicação. Isso demonstra que o modelo cliente-servidor foi implementado com sucesso.
6. Considerações Finais
Durante os testes, foi importante garantir que a porta utilizada estivesse livre e que o servidor fosse executado antes do cliente. Problemas comuns como falha de conexão ou porta em uso puderam ser identificados e corrigidos. Como sugestão para expansões futuras, pode-se implementar suporte a múltiplos clientes e comunicação assíncrona com uso da biblioteca asyncio.
7. Conclusão
A atividade prática permitiu consolidar os conceitos de sockets e comunicação em rede utilizando Python. Os objetivos foram alcançados, visto que a comunicação entre cliente e servidor foi estabelecida com êxito. Essa experiência oferece uma base sólida para o desenvolvimento de aplicações de rede mais avançadas no futuro, incluindo aplicações distribuídas e sistemas com múltiplas conexões simultâneas.
Saída do Servidor
Saída do Servidor
Saída do Cliente
Saída do Cliente
image1.png
image2.png

Mais conteúdos dessa disciplina