Vous êtes sur la page 1sur 9

Introduo a Sistemas Distribudos

Programao de Sistemas Distribudos


Tecnologia em Sistema para Internet

Professor: Elielder Berwanger

Datagramas UDP
O protocolo de transporte UDP utilizado para fornecer um servio de comunicao fim-a-fim simples, porm rpido e eficiente, sem qualquer tipo de controle de erro ou de fluxo. O objetivo principal deste protocolo fornecer multiplexao entre diversas comunicaes (servio bsico da camada de transporte) atravs do conceito de porta, e uma opcional verificao de erro de todos os dados de usurio encapsulados no datagrama. As unidades de transmisso do UDP so chamadas de datagramas, uma vez que possuem os mesmos conceitos sem conexo e no confivel dos pacotes (datagramas) IP.

Datagramas UDP
O protocolo UDP no utiliza conexes como faz o TCP. Para realizar comunicaes com o UDP, basta apenas enviar um datagrama para um endereo IP e uma porta. Se houver algum processo aguardando mensagens UDP naquela porta, o datagrama recebido e processado. Como no h necessidade de abertura de conexes, tambm no preciso que haja encerramento de conexes.

Datagramas UDP
A estrutura do protocolo extremamente simples. No so utilizadas mensagens de confirmao para informar a chegada correta de datagramas UDP, nem qualquer mecanismo de controle de fluxo da comunicao tambm disponibilizado. Os datagramas UDP no so numerados, o que resulta na no ordenao dos datagramas recebidos no host destino.

Datagramas UDP
Devido simplicidade do protocolo UDP, sua utilizao ideal para aplicaes que no necessitem de muito controle por parte do nvel de transporte, como as aplicaes usurias de tecnologia IP multicast. Outras aplicaes que se beneficiam do protocolo UDP so aquelas prejudicadas pela utilizao de mecanismos de controle de erro, como o caso das aplicaes de comunicao multimdia em tempo real. Servios de comunicao que operam de forma simples, no querendo arcar com procedimentos de abertura de conexo, tambm utilizam o protocolo de transporte UDP. Esse o caso do servio de traduo de nomes e endereos oferecido pelo DNS.

Sockets UDP em Java


Como no protocolo UDP no h conexo entre cliente e servidor. Cada datagrama UDP que enviado na rede independente dos demais e pode ser direcionado a qualquer host na Internet. Por isso, a forma como as comunicaes atravs do UDP so realizadas em Java diferente da forma como ocorre com o TCP.

Sockets UDP em Java


Um socket UDP criado atravs de um objeto do tipo DatagramSocket, do pacote java.net. Esse objeto cria um canal de acesso comunicao atravs do UDP, mas s isso. Cada vez que uma informao for enviada na rede utilizando o servio UDP/IP, um datagrama deve ser criado e enviado atravs de um objeto DatagramSocket. Um objeto da classe DatagramPacket representa um datagrama desse tipo. As informaes enviadas utilizando o protocolo UDP so formadas por um array de bytes. Enquanto que com o stream do pacote java.io possvel enviar tipos primitivos e objetos diretamente, as informaes enviadas em datagramas UDP disponibilizados por Java devero ser formadas como um array de bytes.

Exemplo de sockets UDP em Java


Classe Cliente
public class ClienteUDPNumero { public static void main(String[] args) { try { DatagramSocket socket = new DatagramSocket(); InetAddress endereco = InetAddress.getByName("localhost"); int porta = 2654; byte[] num = new byte[1]; num[0] = 12; DatagramPacket datagrama = new DatagramPacket(num, 1, endereco, porta); socket.send(datagrama); System.out.println("Datagrama UDP enviado com sucesso!\nEnviado o nmero : "+ num[0]); } catch (Exception e) { System.out.println(e); } } }

Exemplo de sockets UDP em Java Classe Servidor


public class ServidorUDPNumero {
public static void main(String[] args) {
try { DatagramSocket socket = new DatagramSocket(2654); byte[] num = new byte[1]; DatagramPacket datagrama = new DatagramPacket(num, 1); socket.receive(datagrama); byte[] recebido = datagrama.getData(); System.out.println("O nmero recebido foi : "+ recebido[0]); } catch (Exception e) { System.out.println(e); }

Vous aimerez peut-être aussi