1 / 20

Programação Distribuída em Java

Programação Distribuída em Java. Aula 03. Na aula passada vimos:. I/O Sockets. Na aula de hoje veremos:. Domain Name Server O pacote java.net A classe InetAddress A classe Url A classe UrlConnection. Domain Name Server (DNS).

shelley
Download Presentation

Programação Distribuída em Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programação Distribuída em Java Aula 03

  2. Na aula passada vimos: • I/O • Sockets

  3. Na aula de hoje veremos: • Domain Name Server • O pacote java.net • A classe InetAddress • A classe Url • A classe UrlConnection

  4. Domain Name Server (DNS) • O ser humano consegue memorizar seqüências de até sete números • DNS associa endereços IP a hostname’s para simplificar a memorização do ser humano • Note que um endereço é diferente de um nome de host • As pessoas chamam hostname’s de endereço... Nesse curso será feita uma clara (e necessária) distinção

  5. Domain Name Server (DNS) • Um nome pode mapear vários endereços • Todo computador conectado a Internet deve ter acesso a um DNS • Veja: http://neosite.ilogic.com.br/artigos/o_que_e_ip_e_dns.htm

  6. Domain Name Server (DNS)

  7. Package java.net • Fornece as classes para a implementação de aplicações em rede • Possui 28 classes, 6 interfaces e 11 exceções • Serão estudadas apenas as classes principais

  8. java.net.InetAddress • Representa um endereço IP • Pode ter 32 ou 128 bits • Veja as subclasses: Inet4Address e Inet6Address • Endereços da forma: ddd.ddd.ddd.ddd • Usando o padrão atual: IPv4 • Quadra pontuada (dotted quad) Ex.: USP.java

  9. java.net.InetAddress • É usada pela maioria das classes Java que fazem conexão de rede • Possui apenas dois campos privados: • String hostName • int address • Não há construtores públicos

  10. Inicializando InetAddress • public static InetAddress InetAddres.getByName(String host) trows UnknownHostException • public static InetAddress InetAddres.getAllByName(String host) trows UnknownHostException Ex.: Microsoft.java

  11. Inicializando InetAddress • public static InetAddress InetAddres.getLocalHost (String host) trows UnknownHostException • String host pode ser: “208.125.15.47” e não apenas um hostname • Note que os três métodos estáticos realmente fazem uma conexão de rede com o DNS para obter informações Ex.: UspByAddress.java

  12. Acessando campos de InetAddress • Normalmente não queremos imprimir o “próprio” objeto InetAddress, usamos: • public String getHostName() • public String getHostAddress() • public byte[] getAddress() • O último getter pode ser usado para determinar o tipo (classe) de endereço Ex.: MyAddress.java

  13. java.net.URL • Classe que encapsula as características de um Uniform Resource Locator (url) • Um url se caracteriza pelos campos: • Protocolo • Nome do host • Porta • Caminho • Consulta • Referência (ou âncora) • Um URL é imutável

  14. Inicializando java.net.URL • Diferente de InetAddress, é possível se construir um objeto URL • O programador é responsável por garantir que o URL criado é válido • Os protocolos utilizados pelo URL dependem da implementação Ex.: ProtocolTester.java

  15. Construtores de URL • A partir de uma String URL u = new URL(“http://www.ime.usp.br/index.html”); • A partir dos componentes URL u = new URL(“http”, ”www.ime.usp.br”, “80”, “/index.html”); Note a barra que antecede o nome do arquivo... É um erro comum esquecê-la

  16. Recuperando dados de um URL • public final InputStream openStream() Conecta-se ao recurso referenciado pelo URL Realiza algum acordo entre cliente e servidor Retorna um InputStream a partir do qual os dados podem ser lidos. Ex.: SourceViewer.java

  17. Recuperando dados de um URL • public URLConnection openConnection() Abre um Socket para um URL específico Retorna um URLConnection que dá acesso a tudo o que for enviado pelo servidor, e.g. header’s Permite também o envio de dados ao URL try { URL u = new URL(http://www.fapesp.br); try { URLConnection uc = u.openConnection(); Inputstream in = uc.getInputStream(); // note que poderíamos aqui acessar o OutputStream de uc

  18. Recuperando dados de um URL • public final Object getContent() Conecta-se ao recurso referenciado pelo URL Tenta converter ser conteúdo para algum objeto Java . • Existe uma versão sobrecarregada desse método na qual é possível verificar se a classe do objeto recebido é a esperada dentre uma lista fornecida pelo usuário. Ex.: ContentGetter.java

  19. java.net.URLConnection • Representa uma conexão ativa a um recurso especificado por um URL • Fornece maior controle sobre a interação com o servidor • Permite a inspeção dos cabeçalhos MIME enviados por servidores HTTP • Um Socket pode fazer a maioria das coisas que um URLConnection faz

  20. O que você precisa saber: • Distinguir endereço de hostname; ter noções de DNS • Quando usar InetAddress e quando usar URL • Recuperar dados de um URL; enviar solicitações a cgi e servlet

More Related