0% acharam este documento útil (0 voto)
25 visualizações5 páginas

Nome Estudante: Atividade Prática / Relatório Socket API: Pontifícia Universidade Católica Do Paraná

Enviado por

nicoletttivitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações5 páginas

Nome Estudante: Atividade Prática / Relatório Socket API: Pontifícia Universidade Católica Do Paraná

Enviado por

nicoletttivitor
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

Pontifícia Universidade Católica do Paraná

Escola Politécnica
Bacharelado em Engenharia de Software
Bacharelado em Sistemas de Informação
_________________________________________________________________________________________________________________________________

Curitiba, 14, setembro de 2023.


Disciplina: Conectividade de Sistemas Ciberfísicos
Professor: Jhonatan Geremias
Curso:
Nome Estudante:
Atividade Prática / Relatório
Socket API
Descrição da Atividade:
Esta atividade consiste em implementar em Python a comunicação TCP utilizando a
interface socket. O intuito desta atividade é demostrar o funcionamento do protocolo
TCP, bem como as portas são mapeadas aos processos por meio da interface sockets.

Entrega:
Esta atividade deverá ser entregue até o dia 21/09/2023 no Canvas.
O estudante deverá entregar um arquivo “.pdf” contendo as respostas da atividade
proposta no item especificação.

Especificação:
Exercício 1:
1. Crie o programa ([Link]) utilizando o arquivo exemplo [Link].
2. Inclua um while True para que o programa receba várias conexões sem encerrar.
Dica: É necessário respeitar a identação do Python (comando while)
while True:
conn, addr = [Link]()
print('recebi uma conexao de ', addr)

3. Com o servidor ativo, execute uma conexão utilizando o Putty no modo RAW.
4. Anote o valor de porta mostrado pelo programa servidor.
5. Encerre a conexão o Putty, e repita os testes para obter mais dois valores de porta.
6. Efetuar um printscreen dos testes realizados.
Relatório:
Questão 1:
a) Indique os valores das três portas obtidas com o teste
62820, 62836, 62843
Pontifícia Universidade Católica do Paraná
Escola Politécnica
Bacharelado em Engenharia de Software
Bacharelado em Sistemas de Informação
_________________________________________________________________________________________________________________________________

b) Que portas são essas? O que elas significam?


São portas livres de uso não reservadas pelo sistema, elas são onde a conexão TCP foi
feita, podendo receber e devolver informação utilizando uma dessas portas.

Exercício 2:
1. Altere o programa servidor para que a porta TCP seja passada seja passada pelo
usuário:

Dica: a porta precisa ser convertida de string para inteiro

porta = int(input('Entre com a porta do servidor'))

2. Execute dois servidores a partir do console do Windows (prompt de comando):


cmd
python [Link]
python [Link]
3. Efetuar um printscreen dos testes realizados.

Relatório:
Questão 2:
a) Indique o que acontece quando você tenta abrir dois servidores simultaneamente
na mesma porta
Ocorre um erro de bind
b) Indique o que acontece quando você tenta usar uma porta menor que 1024
(exemplo: 700)
Por ser um computador pessoal e eu ter administrador, acaba que utilizar uma porta
abaixo 1024 funciona, entretanto tem o risco de ocorrer um conflito com alguma outra
aplicação usando essas portas.

Exercício 3:
1. Altere o programa [Link] para que ele imprima as mensagens recebidas do
cliente.
Dica: incluir o código abaixo, dentro do while que inserido para tratar a conexão.
Pontifícia Universidade Católica do Paraná
Escola Politécnica
Bacharelado em Engenharia de Software
Bacharelado em Sistemas de Informação
_________________________________________________________________________________________________________________________________

while True:
data = [Link](1024)
print('recebi ', len(data), ' bytes')

if not data:
break
print(data)
2. Efetuar um printscreen dos testes realizados.

Relatório:
Questão 3:
a) Indique o que acontece quando você tenta conectar 2 Puttys simultaneamente.
apenas o primeiro consegue manter a conexão, já que o protocolo TCP funciona
apenas em unicast.

b) Explique o que acontece quando o primeiro Putty é encerrado.


Quando o primeiro putty é encerrado, o loop de procura de conexões ocorre e
o servidor procura por uma nova conexão, nesse caso, o segundo putty, que conecta
normalmente.
Pontifícia Universidade Católica do Paraná
Escola Politécnica
Bacharelado em Engenharia de Software
Bacharelado em Sistemas de Informação
_________________________________________________________________________________________________________________________________

c) Indique como o conteúdo é recebido quando você usa um buffer pequeno no


servidor (exemplo 10).

Ele divide a mensagem em diferentes pacotes.

d) Utilizando um buffer grande (exemplo 10000), faça com que o servidor


aguarde que o usuário digite algo no teclado antes de efetuar a leitura dos
dados. Em seguida, envie 3 mensagens pelo Putty antes de digitar algo no
servidor, e indique o que acontece.
O buffer grande permite que ele armazene todas as mensagens com
apenas um segmento, diminuindo a fragmentação em pacotes.
Pontifícia Universidade Católica do Paraná
Escola Politécnica
Bacharelado em Engenharia de Software
Bacharelado em Sistemas de Informação
_________________________________________________________________________________________________________________________________

print código final:

Você também pode gostar