Utilização das classes Java para comunicação TCP/IP e UDP/IP



Documentos relacionados
Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

Resumo das Propriedades de UDP e de TCP

Sockets e Threads em Java

Mecanismos de Comunicação. Sockets em java (

Módulo 13. Socket. Programação Orientada a Objetos Java (Rone Ilídio)

User Datagram Protocol

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Network Programming. Conceitos Básicos A classe InetAddress Programação de Socket TCP Programação de Socket UDP

Redes de Computadores II. Programação com Sockets em Python

Camada de Transporte. Bruno Silvério Costa

Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC, Programação em Comunicações

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Programação com sockets (em Java)

Redes de Computadores

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

PROGRAMAÇÃO COM SOCKETS

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

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ SOCKETS UDP, TCP E MULTICAST. Prof. Cesar Augusto Tacla

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

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

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

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

EXTENSÕES DE ENDEREÇO DA SUB-REDE E DA SUPER-REDE

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

Hierarquia de classes. Veja as diversas classes do pacote

Reader e Writer para streams de caracteres (texto).

Programação com Sockets

Programa de Computador que funciona em Rede

Camada de Aplicação. Redes Industriais Prof. Rone Ilídio

Sistemas Distribuídos Java Sockets

Como pôde verificar, a criação de um objecto do tipo File não cria o ficheiro em disco.

Programação com Sockets

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Entrada e Saída Exercício. Linguagem Java. Adenilso da Silva Simão 01/09/05

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Programação de Sockets

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

Reader e Writer para streams de caracteres (texto).

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Conteúdo Programático 1. Fundamentos de Computação Distribuída Arquitetura de Sistemas Distribuídos; Paradigmas de Computação Distribuída; Suporte Com

Programação de sockets com TCP

Java 2 Standard Edition Fundamentos de

Cliente-servidor com Sockets TCP

Aula 30 - Sockets em Java

Protocolo Obrigado! Meio de Transmissão. Pede conexão. Com licença. Aceita conexão. Pois não. Envia mensagem. Que horas são?

Programação com Sockets

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Curso de Programação Concorrente. Notas de aula

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO

Sistemas Distribuídos

Sockets com Java Parte I

Java Standard Edition (JSE)

SISTEMAS DISTRIBUÍDOS

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

SISTEMAS DISTRIBUÍDOS

CETEC Centro Paula Souza

Sistemas Distribuídos

Sistemas Operacionais II

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação de Sockets

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

REC- Redes de Computadores. Capítulo 5 Camada de Aplicação

Aula de Socket. Rafael De Tommaso do Valle

Programação Java. Entrada & Saída

Difusão e Coleta em uma rede. Algoritmos Distribuídos Andrews (C. Geyer) Difusão e Coleta: Probe/Echo 1

Comunicação entre processos

Tratamento de Erro e Javadoc. Professor: Norton T. Roman

Sistemas Distribuídos Aula 2

Comunicação entre Processos

Cliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket()

Java : Comunicação Cliente-Servidor.

Comunicação entre Processos

Informática UFRGS. Cláudio Geyer. Programação concorrente (C. Geyer) Troca de Mensagens 1

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

Sistemas Operacionais Distribuídos e de Redes

Caso 1 NetScanner Main

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

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

Sistemas Distribuídos

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Se você omitir :6789, o browser irá assumir a porta 80, que, provavelmente, não terá nenhum servidor à escuta.

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Motivação. Java First-Tier: Aplicações. Entrada & Saída. Stream de Entrada. Stream de Saída. Pacote java.io. Leitura e Escrita de Streams

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

MESTRADO EM REDES E SISTEMAS DE COMUNICAÇÕES PROGRAMAÇÃO EM COMUNICAÇÕES

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27

Manipulação de arquivos. João Paulo Q. dos Santos

Passagem de Mensagens

INF1013 MODELAGEM DE SOFTWARE

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Transcrição:

Utilização das classes Java para comunicação TCP/IP e UDP/IP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 1

Autor Autores Local Cláudio Geyer Maurício Lima Pilla Instituto de Informática disciplina : Programação Distribuída e Paralela versão V14, março de 2010 Programação com Objetos Distribuídos (C. Geyer) Java Sockets 2

Súmul a Súmula Diferenças entre TCP e UDP Comunicação utilizando Streams - TCP Comunicação utilizando Datagramas - UDP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 3

Bibliografia Java x sockets Bibliografi a GARG, V. J. Concurrent and Distributed Computing in Java. IEEE Press, Wiley, 2004. BOGER, M. Java on Distributed Systems. Wiley, 1999. HAROLD, E. R. Java Network Programming. O Reilly, 3a. ed. 2004. GRABA, J. An Introduction to Network Programming with Java. Springer, 2006. PITT, E. Fundamental Networking in Java. Springer, 2005. FARLEY, J. Java - Distributed Computing. Ed. O'Reilly, 1998. Programação com Objetos Distribuídos (C. Geyer) Java Sockets 4

Bibliografia Java FLANAGAN, David. Java in a Nutshell. O'Reilly Assoc., 2a. ed., 1997. HORSTMANN, Cay S., CORNELL, Gary. Core Java 1.1 Volume II - Advanced Features. Prentice Hall PTR, 1998. Sobre Sockets x redes TANEMBAUM, Andrew S. Computer Networks. Prentice Hall PTR, 3a. ed., 1996. Sobre Sockets com Unix/C Stevens, R. Advanced Unix Programming. Stevens, R. Unix Networking Programming. Bibliografi a Programação com Objetos Distribuídos (C. Geyer) Java Sockets 5

Bibliografi a Bibliografia Documentação Java: package java.net Na versão J2SE 6: http://java.sun.com/javase/6/docs/api/ -> pacote java.net Orfali, R. and Harkey, D. Client/Server Programming with JAVA and CORBA. John Wiley, 2a edição, 1998. Capítulo 10 Tutorial Sun sobre Java trail Networking http://java.sun.com/docs/books/tutorial/networking/index.html Programação com Objetos Distribuídos (C. Geyer) Java Sockets 6

Diferenças Entre TCP e UDP Diferenças Entre TCP e UDP TCP (Transmission Control Protocol) Orientado a conexão Confiável Stream Controle de fluxo UDP (User Datagram Protocol) Orientado a datagrama Não é confiável Datagramas (pacotes) Sem controle de fluxo Programação com Objetos Distribuídos (C. Geyer) Java Sockets 7

TCP (Transmission Control Protocol) Mais lento Diferenças Entre TCP e Diferenças Entre TCP e UDP UDP UDP (User Datagram Protocol) Sem garantia de ordem Garantias de Ordem Chegada Não duplicação chegada não duplicação conteúdo Menor overhead conteúdo Mais apropriado a broadcast Programação com Objetos Distribuídos (C. Geyer) Java Sockets 8

Conceitos básicos de sockets TCP Sockets TCP usa algumas características do modelo cliente/servidor cliente servidor conexão inicia a conexão, ativo conhece servidor e seu endereço/nome atende diversos clientes espera um pedido de conexão de um cliente, passivo um cliente e servidor devem estabelecer um canal próprio Programação com Objetos Distribuídos (C. Geyer) Java Sockets 9

Conceitos básicos de sockets TCP comunicação após a conexão, qualquer um pode inicia-la canal é bidirecional assíncrona bloqueante em geral send: receive: não espera receive Sockets TCP espera passagem dos dados para subsistema de comunicação bloqueia até que haja dados a serem lidos Programação com Objetos Distribuídos (C. Geyer) Java Sockets 10

Conceitos básicos de sockets TCP stream receive (leitura dos dados recebidos) qualquer parte dos dados já recebidos pelo subsistema na máquina destino controle de fluxo Sockets TCP mensagens enviadas a diversas conexões de um processo ficam em fluxos distintos confiável mensagens não são perdidas, nem duplicadas integridade do conteúdo da mensagem é preservado Programação com Objetos Distribuídos (C. Geyer) Java Sockets 11

Sockets TCP Conceitos básicos de sockets TCP servidor possui (cria) um socket associado a uma porta espera pedidos de conexões de clientes conexão aceita novo socket é criado para a conexão em nova porta permite aceitar outras conexões na mesma porta enquanto conexões anteriores estejam abertas Programação com Objetos Distribuídos (C. Geyer) Java Sockets 12

Sockets TCP Conceitos básicos de sockets TCP cliente conhece hostname (IP) da máquina servidora conhece porta do programa servidor pede conexão se conexão aceita um socket é criado associado a uma porta na máquina cliente Programação com Objetos Distribuídos (C. Geyer) Java Sockets 13

Classes sockets TCP em Java no pacote java.net Sockets TCP e Classes Java escondem detalhes dependentes de plataforma API mais simples para fase de conexão API com muitas alternativas para fase de send/receive código (mais?) portável classes ServerSocket Socket usada por servidores usada por clientes e servidores Programação com Objetos Distribuídos (C. Geyer) Java Sockets 14

Sockets TCP e Classes Java Servidor: classe java.net.serversocket ServerSocket(porta) accept() Servidor continua esperando conexões Socket conectado com cliente Socket(host remoto, porta) Cliente: classe java.net.socket Programação com Objetos Distribuídos (C. Geyer) Java Sockets 15

Sockets TCP e Classes Java Sockets TCP e Classes Java Primeiro servidor cria ServerSocket espera por pedidos de conexão em uma determinada porta (método accept( )) Segundo cliente cria Socket, conectando com o servidor Servidor pode criar uma nova Thread para atender cliente continua aceitando novas conexões na mesma porta Programação com Objetos Distribuídos (C. Geyer) Java Sockets 16

SERVIDOR (...) ServerSocket s = new ServerSocket(8189); while (true){ } Socket conexao = s.accept(); /* Disparar uma thread que faça algo, passando conexão como parâmetro */ (...) CLIENTE (...)Socket s; try{ Código para Criar Conexão s =new Socket( poncho,8189); }catch(exception e) {/*Erro*/ } System.exit(0); /* Socket conectado */ Programação com Objetos Distribuídos (C. Geyer) Java Sockets 17

Como Enviar e Receber Mensagens Como Enviar e Receber Mensagens A classe Socket não tem send( ) e receive( ) Os métodos getinputstream( ) e getoutputstream( ) retornam objetos fluxos de bytes (streams) que podem ser manipulados como se viessem de arquivos esses métodos pertencem às classes InputStream e OutputStream, e suas derivadas Programação com Objetos Distribuídos (C. Geyer) Java Sockets 18

Como Enviar e Receber Mensagens Como Enviar e Receber Mensagens Várias classes e métodos para leitura e escrita em streams podendo transmitir desde bytes até certos objetos Para fechar uma conexão, utilizar close( ) Sincronização Receives são síncronos (espera send) Sends: assíncrono bloqueante Não espera receive Espera somente sincronização interna do TCP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 19

RECEBER (...)InputStream input; try { input = s.getinputstream(); } catch (IOException e) {(...)} ObjectInputStream objinput; try { objinput = new ObjectInputStream(input); String line = (String) objinput.readobject( ); }catch (Exception e){(...)} ENVIAR Exemplos de Uso de Streams (...) OutputStream output; try { output = s.getoutputstream(); } catch (IOException e) {(...)} ObjectOutputStream objoutput; try { objoutput = new ObjectOutputStream(output); objoutput.writeobject( Olá! ); }catch (Exception e){(...)} Programação com Objetos Distribuídos (C. Geyer) Java Sockets 20

Uso de Streams Uso de Streams um socket (conexão) pode ser usado ao mesmo tempo para input stream output stream mas os streams são ou de input ou de output após a conexão tanto cliente quanto servidor podem tomar a iniciativa de trocar mensagens evitar somente deadlocks dois em receive inicialmente Programação com Objetos Distribuídos (C. Geyer) Java Sockets 21

TCP: limite de conexões Quantidade de conexões limite da fila de pedidos de conexão em espera na versão 1.2: 50 é o default limite de conexões abertas na versão 1.2: não encontrado Provavelmente o limite Programação com Objetos Distribuídos (C. Geyer) Java Sockets 22

Exemplo Echo Exemplo Echo fonte: tutorial Java da Sun trail networking, lição Sockets, 1o exemplo descrição le string da standard input envia o string ao servidor Echo recebe resposta do servidor Echo imprime resposta Programação com Objetos Distribuídos (C. Geyer) Java Sockets 23

Exemplo Echo Exemplo Echo código import java.io.*; import java.net.*; public class EchoClient { public static void main(string[] args) throws IOException { Socket echosocket = null; // declara socket PrintWriter out = null; // declara vars stream BufferedReader in = null; Programação com Objetos Distribuídos (C. Geyer) Java Sockets 24

Exemplo Echo código Exemplo Echo try { // cria socket local e conecta ao servidor echosocket = new Socket("taranis", 7); // geral: cria streams de in (receive) e out (send) // PrintWriter: 1o arg: OutputStream // 2o arg: println com ação flush out = new PrintWriter(echoSocket.getOutputStream(), true); // BufferedReader: arg: Reader // InputStreamReader: arg: InputStream // subclasse de Reader in = new BufferedReader(new InputStreamReader( echosocket.getinputstream())); } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 25

Exemplo Echo Exemplo Echo código catch (UnknownHostException e) { System.err.println("Don't know about host: taranis."); System.exit(1); } catch (IOException e) { System.err.println("Couldn't get I/O for + "the connection to: taranis."); System.exit(1); } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 26

Exemplo Echo Exemplo Echo código // objeto para I/O do teclado: a enviar ao servidor BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); String userinput; // le do teclado, envia para servidor e imprime resposta // até que linha lida seja nula while ((userinput = stdin.readline())!= null) { out.println(userinput); System.out.println("echo: " + in.readline()); } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 27

Exemplo Echo Exemplo Echo código // fecha os streams e a conexão out.close(); in.close(); stdin.close(); echosocket.close(); } } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 28

Exercícios Sockets Exercícios A) identifique e explique os comandos send e receive no exemplo Echo B) faça um esqueleto (pseudo-código) do programa Echo servidor C) modele uma solução multithreaded no servidor D) modele o algoritmo de difusão usando Java TCP sockets quem pede a conexão como Programação com Objetos Distribuídos (C. Geyer) Java Sockets 29

Sockets UDP Sockets UDP sumário modelo de comunicação com classes UDP esqueleto de programa Programação com Objetos Distribuídos (C. Geyer) Java Sockets 30

Sockets UDP e Classes Java x = new DatagramPacket(buffer, tamanho, endereço, porta2) DatagramSocket(porta1) send(x) Objeto A DatagramSocket(porta2) receive( y ) Objeto B y = new DatagramPacket(buffer, tamanho) Programação com Objetos Distribuídos (C. Geyer) Java Sockets 31

Sockets UDP e Classes Java ambos os lados da conexão criam um novo DatagramSocket Sockets UDP e Classes Java receptor deve informar sua porta de recepção pode ser usado para receber e enviar ambos os objetos criam DatagramPacket mas o objeto que vai enviar o pacote tem que informar o endereço e porta do destinatário para cada mensagem a ser enviada criar um novo DatagramPacket infomar mensagem (buffer e tamanho) e destino (endereço e porta) Programação com Objetos Distribuídos (C. Geyer) Java Sockets 32

Sockets UDP e Classes Java Utilizar os métodos send e receive receive Sockets UDP e Classes Java programador precisa empacotar/desempacotar dados em um buffer pode receber pacote com diferentes tamanhos do enviado maior menor alinha à esquerda resto: não preenchido alinha à esquerda resto: truncado para terminar a conexão, utilizar close Programação com Objetos Distribuídos (C. Geyer) Java Sockets 33

SEND Informática (...) DatagramSocket s; try { s= new DatagramSocket( ); }catch(socketexception e) { (...) } byte[] b = {0,1,2,3,4,5,6,7}; DatagramPacket p = new DatagramPacket ( b, 8, iaddr,2000); try{ s.send( p ); }catch (IOException e) { (...) } Exemplo de Código para Datagramas RECEIVE (...) DatagramSocket s; try { s= new DatagramSocket( 2000 ); }catch(socketexception e) { (...) } DatagramPacket p = new DatagramPacket (new byte[8], 8); try{ s.receive( p ); }catch (IOException e) { (...) } iaddr é o endereço InetAddr do host para onde será mandada a mensagem Programação com Objetos Distribuídos (C. Geyer) Java Sockets 34

Exemplo sockets Java UDP Exemplo completo de sockets Java UDP fonte: tutorial da Sun especificação cliente solicita uma sentença do dia servidor responde com uma sentença sentença é lida de um arquivo Programação com Objetos Distribuídos (C. Geyer) Java Sockets 35

Exemplo completo de sockets Java UDP código cliente Exemplo sockets Java UDP import java.io.*; import java.net.*; import java.util.*; public class QuoteClient { public static void main(string[] args) throws IOException { // verifica 1o argumento: nome do servidor if (args.length!= 1) { System.out.println("Usage: java QuoteClient <hostname>"); return; } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 36

Exemplo completo de sockets Java UDP código cliente Exemplo sockets Java UDP // cria um datagram socket DatagramSocket socket = new DatagramSocket(); // envia pedido; // nome do server é 1o argumento do programa // porta é constante: 4445 byte[] buf = new byte[256]; InetAddress address = InetAddress.getByName(args[0]); DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 4445); socket.send(packet); Programação com Objetos Distribuídos (C. Geyer) Java Sockets 37

Exemplo sockets Java UDP Exemplo completo de sockets Java UDP código cliente // recebe resposta // porta do cliente é passada implicitamente ao servidor packet = new DatagramPacket(buf, buf.length); socket.receive(packet); // mostra resposta String received = new String(packet.getData()); System.out.println("Quote of the Moment: " + received); socket.close(); } } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 38

Exemplo completo de sockets Java UDP código servidor import java.io.*; import java.net.*; import java.util.*; Exemplo sockets Java UDP public class QuoteServerThread extends Thread { protected DatagramSocket socket = null; protected BufferedReader in = null; protected boolean morequotes = true; // construtor básico para exceção public QuoteServerThread() throws IOException { this("quoteserverthread"); } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 39

Exemplo completo de sockets Java UDP código servidor Exemplo sockets Java UDP // construtor normal: argumento nome da thread public QuoteServerThread(String name) throws IOException { super(name); socket = new DatagramSocket(4445); try { in = new BufferedReader(new FileReader("oneliners.txt")); } catch (FileNotFoundException e) { System.err.println("Could not open quote file. Serving time instead."); } } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 40

Exemplo completo de sockets Java UDP código servidor // método principal da thread (servidor) public void run() { // loop enquanto houver sentenças while (morequotes) { try { byte[] buf = new byte[256]; Exemplo sockets Java UDP // recebe pedido do cliente DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); Programação com Objetos Distribuídos (C. Geyer) Java Sockets 41

Exemplo sockets Java UDP Exemplo completo de sockets Java UDP código servidor // cria resposta String dstring = null; // se não há arquivo de Quotes if (in == null) dstring = new Date().toString(); else // lê próxima quote dstring = getnextquote(); buf = dstring.getbytes(); Programação com Objetos Distribuídos (C. Geyer) Java Sockets 42

Exemplo completo de sockets Java UDP código servidor Exemplo sockets Java UDP // envia resposta ao client em "address" e "port // address e port obtidos na mensagem recebida InetAddress address = packet.getaddress(); int port = packet.getport(); packet = new DatagramPacket(buf, buf.length, address, port); socket.send(packet); } catch (IOException e) { e.printstacktrace(); morequotes = false; } } socket.close(); Programação com Objetos Distribuídos (C. Geyer) Java Sockets 43

Exemplo completo de sockets Java UDP código servidor Exemplo sockets Java UDP protected String getnextquote() { String returnvalue = null; try { if ((returnvalue = in.readline()) == null) { in.close(); morequotes = false; returnvalue = "No more quotes. Goodbye."; } } catch (IOException e) { returnvalue = "IOException occurred in server."; } return returnvalue; } } Programação com Objetos Distribuídos (C. Geyer) Java Sockets 44

Exercícios: sockets Java UDP Exercícios A) modele o algoritmo de difusão com Java sockets UDP B) discuta possíveis efeitos caso a difusão seja programada com Java sockets UDP Programação com Objetos Distribuídos (C. Geyer) Java Sockets 45

Revisã o Revisão caracterize a TM via sockets conforme conceitos PDP nomeação: estática/dinâmica, explícita/implícita criação de canais: idem uni ou bidirecional síncrona, assíncrona bloqueante/não-bloqueante buferizada ou não quais os tipos de sockets em Java? Programação com Objetos Distribuídos (C. Geyer) Java Sockets 46

Revisão Informática sockets TCP propriedades sockets TCP em Java nomeação criação de conexão (canal) criação e tipos de links primitivas para send/receive tipos de dados Revisã o Programação com Objetos Distribuídos (C. Geyer) Java Sockets 47

Revisã o Revisão sockets UDP propriedades sockets UDP em Java nomeação canal mensagem send/receive tipos de dados Programação com Objetos Distribuídos (C. Geyer) Java Sockets 48

This document was created with Win2PDF available at http://www.win2pdf.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only. This page will not be added after purchasing Win2PDF.