Sistemas Distribuídos



Documentos relacionados
Sockets com Java Parte I

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

INF1013 MODELAGEM DE SOFTWARE

Java : Comunicação Cliente-Servidor.

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Cliente-servidor com Sockets TCP

Programação com sockets (em Java)

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

Computação Distribuída

Programação de sockets com TCP

Programação de Sockets

Java 2 Standard Edition Fundamentos de

Aula 30 - Sockets em Java

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - alcides@ppgia.pucpr.br Leonardo R. Nunes - leonardo@sumersoft.

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

Programação: Sockets em Java

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

Exemplos práticos do uso de RMI em sistemas distribuídos

Mecanismos de Comunicação. Sockets em java (

Programação de Sockets

Comunicação entre processos

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Redes de Computadores I

Sistemas Distribuídos Java Sockets

Sistemas Distribuídos

Threads e Sockets em Java. Threads em Java. Programas e Processos

Redes de Computadores

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Redes de Computadores Programação com Sockets

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Caso 1 NetScanner Main

Um pouco do Java. Prof. Eduardo

Sistemas Distribuídos. Coulouris Capítulo 4

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Redes de Computadores. Protocolos de comunicação: TCP, UDP

CAMADA DE TRANSPORTE

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sockets e Threads em Java

Sockets. Bruno Guimarães Lucas Rossini

Traceroute É uma ferramenta de diagnóstico que rastreia a rota de um pacote através de uma rede de computadores e que utiliza os protocolos IP e ICMP.

MÓDULO 8 Modelo de Referência TCP/IP

Redes de Computadores

Resumo das Propriedades de UDP e de TCP

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Sistemas Distribuídos

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos. Prof. Ricardo Ribeiro dos Santos

Introdução SUMÁRIO. 1. Introdução Sobre este manual Componentes INSTALAÇÃO Funcionalidade... 9

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

Passagem de Mensagens

Programação com Sockets

Programação de Redes de Computadores em Java

Programação TCP/IP. Protocolos TCP e UDP

Capítulo II Modelos de Programação Distribuída

AULA 6: SERVIDOR DNS EM WINDOWS SERVER

Manual de Instalação

Utilizando o correio eletrônico da UFJF com Thunderbird e IMAP

Sistemas Distribuídos

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo IV Comunicação entre processos

Data Autor Descrição Revisão Configuração HX600 via Rede Ethernet 1.0

Camada de Transporte, protocolos TCP e UDP

Relatório 1º Laboratório: O Java e os Sockets. Licenciatura: ETI Turma : ETC1 Grupo : rd3_t3_02 Data: 22/02/2010

Leandro Soares de Sousa (DSc.) Página: Parte VI

Considerações no Projeto de Sistemas Cliente/Servidor

Permite o acesso remoto a um computador;

REDES DE COMPUTADORES

Sistemas Distribuídos

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

Redes de Computadores II

NETALARM GATEWAY Manual Usuário

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Comunicação entre Processos

Comunicação via Sockets. Prof. Orlando Loques - IC/UFF. versão

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Nome do Curso: Técnico em Informática. Nome da Disciplina: Redes de Computadores. Número da Semana: 2. Nome do Professor: Dailson Fernandes

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Transcrição:

Sistemas Distribuídos Aula 5 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF

Estrutura básica Uma aplicação que utiliza sockets normalmente é composta por uma parte servidora e diversos clientes. Um cliente solicita determinado serviço ao servidor, o servidor processa a solicitação e devolve a informação ao cliente

Sockets com TCP Quando é necessária a confirmação de recebimento da mensagem enviada, devemos utilizar o protocolo TCP (Transmission Control Protocol) A programação do TCP com sockets utiliza streams, o que simplifica muito o processe de leitura e envio de dados pela rede. Streams são objetos Java que permitem obter dados de qualquer fonte de entrada, seja o teclado, um arquivo ou até mesmo um fluxo de bytes recebidos pela rede

Primeiro Servidor TCP Nosso primeiro servidor permitirá a seus clientes solicitarem a data e a hora atuais. Com limitação.

Passo a Passo Ao ser iniciado o servidor fica ouvindo na porta 12345 a espera de conexões de clientes; O cliente solicita uma conexão ao servidor; O servidor exibe uma mensagem na tela com o endereço IP do cliente conectado; O servidor aceita a conexão e envia um objeto Date ao cliente; O cliente recebe o objeto do servidor e faz o tratamento necessário, em seguida exibe na tela as informações de data; O servidor encerra a conexão.

public class ServidorTCPBasico { public static void main(string[] args) { try { ServerSocket servidor = new ServerSocket(12345); System.out.println("Servidor ouvindo a porta 12345"); while(true) { Socket cliente = servidor.accept(); System.out.println("Cliente conectado: " + cliente.getinetaddress().gethostaddress()); ObjectOutputStream saida = new ObjectOutputStream(cliente.getOutputStream()); saida.flush(); saida.writeobject(new Date()); saida.close(); cliente.close(); } } catch(exception e) { System.out.println("Erro: " + e.getmessage()); } }}

Cliente TCP public class ClienteTCPBasico { public static void main(string[] args) { try { Socket cliente = new Socket( daniele",12345); ObjectInputStream entrada = new ObjectInputStream(cliente.getInputStream()); Date data_atual = (Date)entrada.readObject(); JOptionPane.showMessageDialog(null,"Data recebida + data_atual.tostring()); entrada.close(); System.out.println("Conexão encerrada"); } catch(exception e) { System.out.println("Erro: " + e.getmessage()); } } } do servidor:"

Sockets com UDP Quando necessitamos de uma troca não confiável de informações podemos usar o protocolo UDP O UDP utiliza datagram sockets para a troca de mensagens. As principais aplicações do UDP são aplicações como transmissões de vídeo, skype, voip, etc...

Primeiro Servidor UDP Nosso servidor enviará mensagens para os clientes de uma determinada rede local

public class RemetenteUDP { public static void main(string[] args) { if(args.length!= 3) { System.out.println("Uso correto: <Nome da maquina> <Porta> <Mensagem>"); System.exit(0); } try { InetAddress addr = InetAddress.getByName(args[0]); int port = Integer.parseInt(args[1]); byte[] msg = args[2].getbytes(); DatagramPacket pkg = new DatagramPacket(msg,msg.length, addr, port); DatagramSocket ds = new DatagramSocket(); ds.send(pkg); System.out.println("Mensagem enviada para: " + addr.gethostaddress() + "\n" + "Porta: " + port + "\n" + "Mensagem: " + args[2]); ds.close(); } catch(ioexception ioe) {...} } }

Cliente UDP Os clientes aguardarão a mensagem enviada pelo servidor.

public class ReceptorUDP { public static void main(string[] args) { if(args.length!= 1) { System.out.println("Informe a porta a ser ouvida"); System.exit(0); } try { int port = Integer.parseInt(args[0]); DatagramSocket ds = new DatagramSocket(port); System.out.println("Ouvindo a porta: " + port); byte[] msg = new byte[256]; DatagramPacket pkg = new DatagramPacket(msg, msg.length); ds.receive(pkg); JOptionPane.showMessageDialog(null,new String(pkg.getData()).trim(), "Mensagem recebida",1); ds.close(); } catch(ioexception ioe) {...} }}

Um servidor TCP com múltiplos threads No primeiro exemplo de servidor TCP, o servidor processava uma conexão de cada vez.

TCP com multithreading O cliente solicita arquivos de imagem ao servidor O cliente deve informar o caminho do arquivo no servidor O servidor, ao receber o pedido, enviará o arquivo ao cliente Para cada solicitação o servidor criará uma nova thread para gerenciar a troca de novas mensagens

O cliente

O código do botão

Broadcast Broadcast significa enviar datagram sockets para todos os clientes conectados em uma determinada rede.

Multicast O multicast permite enviar datagramas para um grupo de clientes conectados na rede Os clientes interessados em receber estas mensagens devem participar de um grupo multicasting. O UDP suporta multicast

Multicast Os endereços reservados para o multicast estão entre 224.0.0.0 e 230.255.255.255 Sendo os endereços com prefixo 239 reservados para uso em intranets.

Um servidor e um cliente Multicast Neste exemplo: O cliente assina um grupo multicast, 239.0.0.1, a partir deste momento o cliente aguarda por mensagens do servidor; O servidor envia mensagens multicast para o grupo 239.0.0.1 O cliente recebe a mensagem e a exibe na tela

Servidor

Cliente

Fim da Aula 5. Sistemas Distribuídos: Msc. Daniele C. Oliveira 38