1 / 38

Programação Orientada a Objetos – SCC0204 Prof.: Fernando V. Paulovich

Programação Orientada a Objetos – SCC0204 Prof.: Fernando V. Paulovich E-mail: paulovic@icmc.usp.br Monitor PAE: Ricardo Ramos de Oliveira E-mail: ricardoramos@icmc.usp.br 22 de Novembro de 2010 Universidade de São Paulo. ROTEIRO. 1. Conceitos Básicos sobre Redes. 2.

Download Presentation

Programação Orientada a Objetos – SCC0204 Prof.: Fernando V. Paulovich

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 Orientada a Objetos – SCC0204 Prof.: Fernando V. Paulovich E-mail: paulovic@icmc.usp.br Monitor PAE: Ricardo Ramos de Oliveira E-mail: ricardoramos@icmc.usp.br 22 de Novembro de 2010 Universidade de São Paulo

  2. ROTEIRO 1 Conceitos Básicos sobre Redes 2 Programação Cliente-Servidor 3 Servidor e cliente de instâncias de classes 4 Aplicativo Tic Tac Toe Game

  3. ROTEIRO 1 Conceitos Básicos sobre Redes 2 Programação Cliente-Servidor 3 Servidor e cliente de instâncias de classes 4 Aplicativo Tic Tac Toe Game

  4. Conceitos Básicos sobre Redes 1 • Servidor → é o computador que contém a aplicação que desejamos executar via remota. • Serviço → é uma aplicação sendo executada no servidor. É comum usar os termos “serviço” e “servidor” para designar a aplicação a ser executada (ex. servidor de FTP).

  5. Conceitos Básicos sobre Redes 1 • Cliente →é a aplicação remota que fará a comunicação e interação com o serviço/servidor. • Endereço → é a informação da localização de um computador em uma rede local ou na • Internet. • Porta → é um endereço local em um computador conectado a uma rede, identificado por um número único.

  6. Conceitos Básicos sobre Redes 1 • Protocolo → Padrão de comunicação estabelecido entre cliente e servidor. • Socket → é o canal de comunicações para o envio e recebimento de informações entre cliente e servidor.

  7. ROTEIRO 1 Conceitos Básicos sobre Redes 2 Programação Cliente-Servidor 3 Servidor e cliente de instâncias de classes 4 Aplicativo Tic Tac Toe Game

  8. Programação Cliente-Servidor 2 • Uma aplicação cliente-servidor em Java segue um padrão simples de desenvolvimento • Imaginemos uma aplicação onde o cliente deva recuperar uma linha de texto enviada pelo servidor (a linha de texto pode conter a hora local, uma cotação de moeda, etc.).

  9. Programação Cliente-Servidor 2 • O algoritmo do cliente e do servidor para leitura e processamento de uma String.

  10. Programação Cliente-Servidor 2 • O primeiro passo do algoritmo (a criação de uma conexão) é feita pela criação de uma instância da classe Socket. • Podemos obter uma stream de entrada a partir da instância de Socket (usando o método getInputStream). • Solicitamos a leitura, e o servidor criará esta string para ser enviada quando for requisitado, imprimimos a string lida e fechamos a stream e a conexão.

  11. Programação Cliente-Servidor 2 • Exemplo O serviço daytime é registrado na porta 13 e retorna, quando conectado e solicitado, uma string contendo a data e hora do servidor. O protocolo de comunicação com um servidor destes é, então, muito simples: basta estabelecer a conexão, ler uma única string e encerrar a conexão.

  12. Programação Cliente-Servidor 2 • Esta classe implementa um cliente simples para o serviço daytime (porta 13).

  13. Programação Cliente-Servidor 2 • Esta classe implementa um servidor para o serviço daytime (porta 13).

  14. Programação Cliente-Servidor 2 • Exercicio De acordo com a classe ServidorDeDaytime.java do slide anterior implemente o método processaConexão(), compile e execute o código do Servidor em seguida compile e execute o código da classe ClienteDeDaytime.java.

  15. ROTEIRO 1 Conceitos Básicos sobre Redes Programação Cliente-Servidor 2 3 Servidor e cliente de instâncias de classes 4 Aplicativo Tic Tac Toe Game

  16. Servidor e cliente de instâncias de classes 3 • Como podemos escrever um servidor para servir instâncias de classes em Java? • O cliente também deverá ser capaz de receber do servidor estas instâncias. • Vamos usar a classe Livro para criar as instâncias que serão enviadas.

  17. Servidor e cliente de instâncias de classes 3 • Classe Livro

  18. Servidor e cliente de instâncias de classes 3 • O protocolo de comunicação entre o servidor e o cliente de instâncias da classe Livro está mostrado na abaixo.

  19. Servidor e cliente de instâncias de classes 3 ServidorDeLivros.java

  20. Servidor e cliente de instâncias de classes 3 Continuação... método processaConexão() da classe ServidorDeLivros.java.

  21. Servidor e cliente de instâncias de classes 3 ClienteDeLivros.java

  22. Servidor e cliente de instâncias de classes 3 • Ao invés de usar uma instância de BufferedReader para “ler” dados do servidor, iremos usar uma instância de ObjectInputStream. • Existe uma outra diferença entre este cliente e outros: este deve, obrigatoriamente, ter um bloco catch para processar a exceção ClassNotFoundException, que será criada caso a classe cuja instância desejamos recuperar não existir do lado do cliente.

  23. ROTEIRO 1 Conceitos Básicos sobre Redes Programação Cliente-Servidor 2 Servidor e cliente de instância de classes 3 4 Aplicativo Tic Tac Toe Game

  24. Aplicativo Tic Tac Toe Game 4 • O aplicativo do jogo Tic Tac Toe ou Jogo da velha como é conhecido popularmente será desenvolvido utilizando um servidor e vários clientes conectados simultaneamente, cada cliente tem a sua vez de interagir com o servidor. Os clientes são dependentes. • Este aplicativo ilustra o papel de um servidor como mediador em um jogo. • O jogo-da-velha é um bom exemplo: dois jogadores, através dos seus clientes,se conectam com o servidor, e um depois do outro, enviam comandos para este.

  25. Aplicativo Tic Tac Toe Game 4 • Além de receber e processar os movimentos feitos pelos clientes, o servidor é responsável por analisar estes movimentos: • - Verificar se eles são válidos, • - informar os jogadores dos movimentos de ambos • - determinar quando o jogo tiver um vencedor • - Encerrar as conexões com os clientes

  26. Aplicativo Tic Tac Toe Game 4 • O protocolo de interação entre os clientes e o servidor é mostrado na Figura.

  27. Aplicativo Tic Tac Toe Game 4 • Classe ServidorDeJogoDaVelha.java

  28. Aplicativo Tic Tac Toe Game 4 • Método main()

  29. Aplicativo Tic Tac Toe Game 4 • Fim do método main()

  30. Aplicativo Tic Tac Toe Game 4 • Método processaJogo()

  31. Aplicativo Tic Tac Toe Game 4 • Continuação do método processaJogo()

  32. Aplicativo Tic Tac Toe Game 4 • Fim do método processaJogo()

  33. Aplicativo Tic Tac Toe Game 4 • Método mostraTabuleiro()

  34. Aplicativo Tic Tac Toe Game 4 • Método verificaVencedor()

  35. Aplicativo Tic Tac Toe Game 4 • Fim do método verificaVencedor()

  36. Aplicativo Tic Tac Toe Game 4 • Fim do método enviaMensagem()

  37. Aplicativo Tic Tac Toe Game 4 • Um exemplo de interação de um cliente (telnet) com o servidor de jogo-da-velha pode ser visto na Figura abaixo.

  38. FIM

More Related