Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.

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
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Novas Tecnologias Microsoft.
Comunicação entre processos distribuídos
Sistemas Distribuídos
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
1 Java: Tratamento de Exceções Alcides Calsavara.
Redes de computadores Prof. Nelson Fonseca 2: Camada de Aplicação.
Sistemas Paralelos e Distribuídos
Redes de Computadores 2 - Camada de Aplicação (HTTP) –
Camada de Aplicação Teleprocessamento e Redes
Ronaldo Celso Messias Correia
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.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Servidores e Programação Web Redes de Computadores.
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o NetBeans 5.5 Disciplina: CE 262 – Ontologias e Web Semântica.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes.
FEUPDEECRedes de Computadores/ Comunicação de Dados, 4º Ano de EEC HTTP (HyperText Transfer Protocol) Abril, 98Isidro Vila Verde 1 Introdução.
Camada de Transporte: Portas, Sockets, Aplicações em Rede
Introdução à Programação Distribuída em Java
Capítulo 2 Camada de aplicação
Usando Java no Oracle Por Edson Almeida Junior
Linguagens de Programaçã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.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
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.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Java em Redes de Computadores
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Streams –input e output
Programação com sockets
Scala Bruno Barros e Rebeka Gomes
Comunicação Entre Processos Sockets - Java
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Tipos Especiais de Listas
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
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.
Implementando comunicação em JAVA via Sockets Alcides Calsavara - Leonardo R. Nunes -
IIS Web Server.
Requisições e Respostas HTTP Prof. Leandro Luque.
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 02 Programação de Sockets TCP e UDP CIn/UFPE Bruno Gentilini Eduardo Souza Amora Albuquerque Anália.
Paulo Roberto Freire Cunha
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.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Wireshark Captura de Protocolos da camada de aplicação Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Maicon de Vargas Pereira.
Programação em Java Sockets Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Sistemas Distribuídos Aula 6
Curso Superior em Redes de Computadores
Soquetes (1) SOCKET Uma interface local, criada por aplicações, ponto final de comunicação no qual os processos de aplicação podem tanto enviar quanto.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Programação para Dispositivos Móveis: API Web e Comandos Gerais
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 Professor: Paulo Gonçalves CIn/UFPE Bruno Gentilini (bgda) Eduardo Souza (efs) Luís Felipe Auto (lfag) Caio Mc Intyre (cfmi) Lucas Ventura (lvs) Sérgio Pessoa (srpvnf)

Nosso objetivo:  Revisão 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], 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 no link [Aulas] 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...

13 Referências 1.James F. Kurose and Keith W. Ross, "Redes de Computadores e a Internet - Uma Nova Abordagem", 3a. edição Ed. Addison Wesley BRA summary.htmlhttp://java.sun.com/j2se/1.5.0/docs/api/java/net/package- summary.html Slides anteriores da monitoria feitos por flávio almeida (faas).