sockets redes de comunicação de dados prof. esp. cristiano josé cecanho
TRANSCRIPT
![Page 1: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/1.jpg)
Sockets
Redes de Comunicação de DadosProf. Esp. Cristiano José Cecanho
![Page 2: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/2.jpg)
Introdução
• Socket, soquete, ou melhor dizendo, portas de acesso são o elo de comunicação entre aplicações de dispositivos distintos.
• Este promove um canal de transmissão de dados (stream - fluxo) biderecional.
![Page 3: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/3.jpg)
O que é preciso?
• Uma porta livre.
• O endereço IP com o qual irá corresponder.
![Page 4: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/4.jpg)
Portas
• Dependendo da versão de seu sistema operacional, existe 65536 portas disponíveis, onde as primeiras 1024 portas são reservadas para serviços padrão.
• Fora isso, aplicações instaladas podem requisitar portas para atualizações, entre outras operações.
![Page 5: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/5.jpg)
Visualizar Portas abertas
![Page 6: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/6.jpg)
Modos de operação
• Orientado à conexão: ideologia da rede de telefones, precisam os dois dispositivos estar ativos para que a transmissão aconteça. Ex: chat direcionado. Protocolo: TCP.
• Modo sem conexão: ideologia dos correios, ao enviar uma carta você não tem certeza se ela foi entregue corretamente. Ex: download que não permite reiniciar do ponto em que parou. Protocolo: UDP.
![Page 7: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/7.jpg)
API’s
• Todo sistema operacional possui um conjunto de API’s (Interface de Programação para Aplicações) e com sockets não seria diferente.
• Exemplos:– gethostbyname.– getservbyname.– getprotobyname.
![Page 8: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/8.jpg)
Funções da API
socketbindlisten
acceptconnectrecvfrom
recvsendtosendclose
![Page 9: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/9.jpg)
Um exemplo em JAVA - terminal
• Abra o Eclipse e crie um novo Projeto Java com o nome ChatSocket.
![Page 10: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/10.jpg)
Adicione um pacote controller
![Page 11: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/11.jpg)
Adicione duas classes, uma Cliente, outra Servidor
![Page 12: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/12.jpg)
![Page 13: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/13.jpg)
Três atributos para a classe cliente
![Page 14: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/14.jpg)
Adicionar um Socket
![Page 15: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/15.jpg)
Corrija a importação
![Page 16: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/16.jpg)
PrintStream
![Page 17: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/17.jpg)
Tentar conexão
• Circundar toda tentativa com try {} catch(){}.
• Isto faz com que ao invés de mostrar um erro grotesco, exiba uma mensagem agradável, ou imprima o erro para o programador.
![Page 18: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/18.jpg)
Tentar conexão
![Page 19: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/19.jpg)
Em caso de erro
• Caso um erro aconteça, precisamos saber onde ocorreu este erro para saber solucioná-lo.
![Page 20: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/20.jpg)
Fechando a conexão
• Somente uma garantia que a porta aberta realmente seja fechada e não seja disponível para uma tentativa de acesso indesejada.
![Page 21: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/21.jpg)
Classe Servidor
• Não adianta testar ainda, pois o principal não esta executando.
• Para esta aplicação ter efeito, precisamos de um servidor ativo.
• Inicie a edição como do modo anterior, palavras reservadas tem a primeira letra em maiúscula, aperte ctrl + barra de espaço para auto completar.
![Page 22: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/22.jpg)
Transfira as informações
![Page 23: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/23.jpg)
Tentativa de conexão
![Page 24: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/24.jpg)
Tentativa de conexão
![Page 25: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/25.jpg)
Tratando erros e fechando a conexão
![Page 26: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/26.jpg)
Testar a aplicação
• Inicie o servidor e depois o cliente.
• Botão direito sobre a classe Servidor, opção Run As, Java Application.
![Page 27: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/27.jpg)
Exemplo
![Page 28: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/28.jpg)
Inicie o cliente
• Você não verá nada no servidor enquanto não existir pelo menos um cliente.
• Repita os passos para iniciar o servidor para iniciar o cliente.
![Page 29: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/29.jpg)
Este é o IP de quem deseja se comunicar
![Page 30: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/30.jpg)
Mesma porta do Servidor
![Page 31: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/31.jpg)
Então o que deseja fazer?
![Page 32: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/32.jpg)
Passando uma mensagem
![Page 33: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/33.jpg)
No servidor
![Page 34: Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho](https://reader036.vdocuments.pub/reader036/viewer/2022062819/570638691a28abb82390418b/html5/thumbnails/34.jpg)
Finalizando a conexão