Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP CIn/UFPE Bruno Gentilini Eduardo Souza Amora Albuquerque Anália.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Advertisements

Parte 2: Camada de Aplicação
Interações cliente/servidor usando o UDP
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Comunicação entre processos distribuídos
Bruno Rafael de Oliveira Rodrigues
Comunicação Distribuída
Redes de computadores Prof. Nelson Fonseca 2: Camada de Aplicação.
Redes de Computadores 2 - Camada de Aplicação (HTTP) –
Conceitos de Sockets Universidade Federal do Rio Grande do Sul (UFRGS)
Camada de Aplicação Teleprocessamento e Redes
26/09/2005 LCMI - DAS - UFSC 1 Introdução aos Sockets Java Fábio Favarim DAS – Departamento de Automação e Sistemas UFSC – Universidade.
1 Introdução aos Sockets (Java) Tiago Semprebom DAS – Departamento de Automação e Sistemas UFSC – Universidade Federal de Santa Catarina.
Paulo Roberto Freire Cunha
Tecnologias para Internet
REVISÃO MÓDULO 3(Camada de Transporte)
Camada de Transporte: Portas, Sockets, Aplicações em Rede
Introdução à Programação Distribuída em Java
Capítulo 2 Camada de aplicação
Modelo de referência OSI
Aula 9 - Camada de aplicação
Infra-Estrutura de Comunicação (IF678)
Anália Lima (alc5) Bruno Gentilini (bgda) Eduardo Souza (efs) Ivan França (ilfn) Infra-Estrutura de comunicação Aula Prática Programação de Sockets TCP.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Denyson José Eduardo Souza Ivan França Rafael Lima.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
Redes de Computadores Camada de Aplicação.
Streams –input e output
Programação com sockets
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.
Comunicação Entre Processos Sockets - Java
HTTP Hypertext Transfer Protocol.
Camada de Transporte prof. Eduardo.
Nível Transporte Fornece aos níveis superiores serviço eficiente e confiável entre máquina de origem e destino, independente das redes utilizadas. Torna.
Java e Serviço de Transporte Vitor Brandi Junior.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Infra-Estrutura de Comunicação (IF678) Aula Prática CIn/UFPE Rafael Lucena Roberta Mota Rubens Lopes Rodolfo Santos João Pedro Cordeiro.
Programando sockets em python
Implementando comunicação em JAVA via Sockets Alcides Calsavara - Leonardo R. Nunes -
RMI - JAVA.
IIS Web Server.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Hugo Simões Original por: Flávio.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Infra-Estrutura de Comunicação (IF678)
Infra-Estrutura de Comunicação (IF678)
Socket em Java.
Infra-Estrutura de Comunicação (IF678) Aula Prática 01 – CIn/UFPE Anália Lima Bruno Gentilini Eduardo Souza Ivan França.
Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Bruno Original por: Flávio
Paulo Roberto Freire Cunha
Programação Distribuída em Java Aula Na aula passada vimos: I/O Streams Filtros Readers and Writers.
Programação Distribuída em Java Aula Na aula passada vimos: I/O Sockets.
Programação Distribuída em Java Aula Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress.
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 2 Camada de aplicação Nota sobre o uso destes slides ppt: Estamos disponibilizando.
Nível Transporte Fornece aos níveis superiores serviço eficiente e confiável entre máquina de origem e destino, independente das redes utilizadas. Torna.
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 2 Camada de aplicação Nota sobre o uso destes slides ppt: Estamos disponibilizando.
Redes de Computadores 2 - Camada de Aplicação (Princípios Básicos) –
Administração e Projeto de Redes Material de apoio Camada de Transporte Cap.4 10/02/2010.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.
Nível Transporte 1 Fornece aos níveis superiores serviço eficiente e confiável entre máquina de origem e destino, independente das redes utilizadas. Torna.
Implementação Orientada a Objetos – Aula 09 Pacotes Prof. Danielle Martin Universidade de Mogi das Cruzes
2 © 2005 by Pearson Education Prof. Esp Camilo Brotas Ribeiro Redes de Computadores Aula 04 - Camada de Aplicação.
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Servidor WEB IGOR ALVES. O protocolo HTTP 1990 surgimento da aplicação www Grande quantidade de informação que pode ser acessada por demanda Buscadores.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Programação Orientada a Objetos
Transcrição da apresentação:

Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP CIn/UFPE Bruno Gentilini Eduardo Souza Amora Albuquerque Anália Lima Cleivson Siqueira Ivan França

Nosso objetivo:  Revisão rápida sobre Socket  Programação de Sockets TCP e UDP  Desenvolver um servidor Web 2

Agenda 3 1.Comunicação entre processos 2.Programação de Socket TCP 3.Programação de Socket UDP 4.Desenvolver um servidor Web...

Comunicação entre processos 4  Processos em hosts distintos comunicam-se por meio de envio de mensagens...  enviadas e recebidas através de seu socket Socket é a interface entre a camada de aplicação e a de transporte

Programação de Socket TCP - Client 5 import java.io.*; import java.net.*; import java.util.Scanner; public class TCPclient { public static void main(String[] args) throws Exception { //lendo do teclado String inFromUser = new Scanner(System.in).next(); //criando um socket TCP Socket sock = new Socket("localhost", 2000); //stream de saida DataOutputStream socketOut = new DataOutputStream(sock.getOutputStream()); socketOut.writeBytes(inFromUser + '\n'); //resposta do servidor BufferedReader socketIn = new BufferedReader(new InputStreamReader(sock.getInputStream())); System.out.println(socketIn.readLine()); }

Programação de Socket TCP - Server import java.io.*; import java.net.*; public class TCPserver { public static void main(String argv[]) throws Exception { String inFromClient; String outToClient; //socket de "boas vindas" ServerSocket welcomeSocket = new ServerSocket(2000); while(true) { //socket de conexão TCP Socket sock = welcomeSocket.accept(); //buffer de entrada, que recebe um stream BufferedReader socketIn = new BufferedReader(new InputStreamReader(sock.getInputStream())); inFromClient = socketIn.readLine(); outToClient = inFromClient.toUpperCase() + '\n'; //stream de saida DataOutputStream socketOut = new DataOutputStream(sock.getOutputStream());//stream de saida //escrevendo no socket socketOut.writeBytes(outToClient); sock.close(); } 6

Exercício Faça um “Hello [endereço IP do servidor]” e retorne do servidor um “HELLO [endereço IP do cliente]” OBS: O cliente deve fechar a conexão após receber a resposta do servidor ou dar um timeout de 30 segundos.

Programação de Socket UDP - Client import java.net.*; import java.util.Scanner; class UDPclient { public static void main(String args[]) throws Exception { String inFromUser = new Scanner(System.in).next() + '\n'; //entrada do usuário DatagramSocket clientSocket = new DatagramSocket(); //socket UDP InetAddress IPServer = InetAddress.getByName("localhost"); //IP do servidor byte[] sendData = new byte[1024]; //dados a serem enviados sendData = inFromUser.getBytes(); //criando o pacote de envio DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPServer, 5000); clientSocket.send(sendPacket); byte[] receiveData = new byte[1024]; //dados recebidos DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); //recebendo o pacote String inFromServer = new String(receivePacket.getData()); System.out.println("FROM SERVER: " + inFromServer); clientSocket.close(); } 8

Programação de Socket UDP - Server import java.net.*; class UDPserver { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(5000); byte[] receiveData = new byte[1024] ; byte[] sendData = new byte[1024]; String inFromClient, outToClient; InetAddress clientIP; int port; while(true) { //pacote a ser recebido DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); //recebendo o pacotes inFromClient = new String(receivePacket.getData()); //colocando na string os dados recebidos clientIP = receivePacket.getAddress(); //pegando o IP e porta do pacote que chegou port = receivePacket.getPort(); outToClient = inFromClient.toUpperCase(); sendData = outToClient.getBytes(); //enviando pacote de resposta DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientIP, port); serverSocket.send(sendPacket); } 9

Exercício Faça, por meio de uma conexão UDP, o cliente enviar dois números e o servidor responder com a soma deles. OBS: O cliente deve encerrar após receber a resposta do servidor ou dar um timeout de 30 segundos. 10

 Trata-se de um servidor Web, que responderá a requisições HTTP, bastante simples. Com as seguintes regras:  Deve ser implementado utilizando-se a API de Java  Ele deve manipular apenas uma requisição HTTP;  Ele deve enviar uma mensagem de resposta ao cliente contendo linhas de cabeçalho e o objeto desejado, se existente;  A única verificação necessária é quando o objeto não for encontrado, deve-se retornar: “ HTTP/ Not Found ”  Teste seu servidor utilizando um navegador qualquer!  Mantenha os arquivos que serão baixados na mesma pasta do seu projeto  Dicas: - utilize as classes ServerSocket, Socket, StringTokenizer e File - reveja a aula sobre HTTP - consulte o RFC[2616] - baixar código parcial em Desenvolver um servidor Web... 11

12 Exemplo – O que deve ser feito Requisição (via browser ou telnet) telnet: GET /index.html HTTP/1.0 Host: localhost Browser: Resposta (seu servidor) HTTP/ OK Content-Language: pt-BR Content-Length: 53 Content-Type: text/html Connection: close CRLF “enter” dados... Requisição (via browser ou telnet) telnet: GET /img2.png HTTP/1.0 Host: localhost Browser: Resposta (seu servidor) HTTP/ OK Content-Language: pt-BR Content-Length: 733 Content-Type: image/png Connection: close CRLF “enter” dados...

Exercício do Temporizador O exercício deverá ser apresentado (pessoalmente) aos monitores. A data máxima para apresentar será definida Obs: Não mandar s individualmente para um monitor, pois a dúvida de um pode ser a dúvida de muitos 13

Exercício do Temporizador(cont.) Deverá ser desenvolvido um programa que rode em duas máquinas distintas. O programa terá as seguintes funcionalidades: 1. Os dois hosts (A e B) devem estabelecer uma conexão TCP 2. O host A deve enviar ao host B um pacote realizando uma solicitação ara a hora do sistema em B 3. O host A deve receber um pacote do host B com a hora do sistema em B 4. O host A deve mostrar na tela a hora do sistema em B, e também, o RTT calculado em relação a solicitação ◦ A hora mostrada na tela deve seguir o formato: dia/mês/ano hora:minutos:segundos milissegundos” IMPORTANTE: O lado B irá enviar a informação para A na forma de bytes. Não pode transformar a hora do sistema em um Objeto (como String), e utilizar a função writebytes para escrever no pacote O lado B deve enviar um pacote com tamanho de 8 bytes, suficiente para enviar os 1 long relativos à hora do sistema 14