A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Distribuída em Java Aula 03. 2 Na aula passada vimos: I/O Streams Filtros Readers and Writers.

Apresentações semelhantes


Apresentação em tema: "Programação Distribuída em Java Aula 03. 2 Na aula passada vimos: I/O Streams Filtros Readers and Writers."— Transcrição da apresentação:

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

2 2 Na aula passada vimos: I/O Streams Filtros Readers and Writers

3 3 O que você deve ter fixado: Tratamento básico de entrada e saída Encadeamento de filtros Manipulação de streams

4 4 Na aula de hoje veremos: Sockets

5 5 Socket Abstração que permite ao programador tratar uma conexão de rede como um stream de dados. Libera do programador dos detalhes de baixo nível da rede Um socket conecta dois hosts

6 6 Socket Um Socket é uma conexão Socket permite tratar a conexão como I/O Ler ou enviar dados em uma rede deve ser tão simples como fazê-lo para um arquivo local

7 7 Portas lógicas Abstrações na memória do computador Não têm características físicas Estão registradas em cada pacote de informação

8 LowPortScanner.java8 Portas notáveis De 1 a 1023 Breve lista –07 echo –13 daytime –21 FTP –23 Telnet –25 SMTP –80 HTTP –110 POP3 –1099 RMI Registry Lista detalhada em: http://pt.wikipedia.org/wiki/Lista_de_portas_de_protocolos

9 9 Operações Básicas dos Sockets Conectar a máquinas remotas Enviar dados Receber dados Encerrar conexão Conectar-se a portas lógicas Aguardar chegada de dados Aceitar conexão de máquinas remotas

10 10 Sockets Clientes e servidores usam sockets Os três últimas operações citadas são próprias dos servidores São implementadas apenas por ServerSockets

11 DaytimeClient.java11 Ciclo de vida de um programa que usa Socket Criação do socket Conexão ao host remoto Obtenção dos streams de entrada e saída Troca de informações Encerramento da conexão

12 12 A Classe Socket Java.net.Socket é a classe fundamental para operações no lado cliente. Outras classes Java que fazem conexão de rede usam Socket implicitamente.

13 13 Java.net.Socket Possui quatro construtores públicos e dois protegidos Cada construtor especifica o host e a porta à qual você deseja se conectar Eventualmente o construtor pode indicar uma interface, ou seja, um ponto alternativo de conexão (físico ou virtual) com a máquina atual

14 14 public Socket (String host, int port) throws UnknownHostException, IOException try { Socket s = new Socket (“www.ime.usp.br”, 80); // execução do programa } catch(UnknownHostException e){ System.out.println(e); } catch(IOException e){ System.out.println(e); }

15 HighPortScanner.java15 public Socket ( InetAddress ia, int port ) throws UnknownHostException, IOException try { String host = www.ime.usp.br;www.ime.usp.br InetAddress ia = InetAddress.getByName(host); Socket s = new Socket (ia, 80); // execução do programa } catch( UnknownHostException e ){ System.out.println(e); } catch( IOException e ){ System.out.println(e); }

16 16 public Socket (String host, int port, InetAddress interface, int localPort ) throws UnknownHostException, IOException try { Socket s = new Socket (“www.ime.usp.br”, 80, interface, localPort); // execução do programa } catch( UnknownHostException e ){ System.out.println(e); } catch( IOException e ){ System.out.println(e); }

17 17 public Socket (InetAddress ia, int port, InetAddress interface, int localPort ) throws UnknownHostException, IOException try { String host = www.ime.usp.br;www.ime.usp.br InetAddress ia = InetAddress.getByName(host); Socket s = new Socket (ia, 80, interface, localPort); // execução do programa } catch( UnknownHostException e ){ System.out.println(e); } catch( IOException e ){ System.out.println(e); }

18 SocketInfo.java18 Socket Métodos básicos public InetAddress getInetAddress() public int getPort() public int getLocalPort() public InputStream getInputStream() public OutputStream getOutputStream()

19 DayTime.java and Echo.java19 Socket Métodos básicos public InputStream getInputStream() public OutputStream getOutputStream()

20 20 Socket Um socket é fechado quando: –Um ou os dois stream são fechados –O programa termina –Garbage collected Recomenda-se o fechamento explícito É possível fechar apenas um sentido do stream –public void shutDownInput() –public void shutDownOutput() Note que fechar a entrada e a saída não fecha o socket

21 LocalPortScanner.java21 Java.net.ServerSocket Pelo lado servidor, para que seja possível a conexão, é necessário um ServerSocket Um ServerSocket roda em um servidor e aguarda a chegada de solicitações de conexão

22 22 java.net.ServerSocket Solicitações de conexão são colocadas em uma fila O tamanho default dessa fila é 50 Em Java é possível alterar o tamanho dessa fila

23 RandomPort.java23 java.net.ServerSocket Construtores –public ServerSocket(int port) –public ServerSocket(int port, int queueLength) trows BindException() –public ServerSocket(int port, int queueLength, InetAddress bind) todos lançam IOException

24 DaytimeServer.java24 Java.net.ServerSocket ServerSockets aguardam as conexões enquanto Sockets as iniciam Servidores usam o mesmo tipo de objeto Socket para o seu lado da comunicação A quantidade máxima de conexões é dependente de sistema operacional

25 SingleFileHTTPServer.java25 Cliente A Cliente B Cliente C Cliente D ServerSocket Aplicação Servidora Socket

26 26 O que você precisa saber... Características principais dos soquetes Utilização de portas lógicas Aquisição e manipulação do stream da rede Esquema do ação dos servidores de soquetes

27 27 Na próxima aula veremos: Suporte Java para rede Pacote java.net


Carregar ppt "Programação Distribuída em Java Aula 03. 2 Na aula passada vimos: I/O Streams Filtros Readers and Writers."

Apresentações semelhantes


Anúncios Google