Sei sulla pagina 1di 38

Programao 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 So Paulo

ROTEIRO

1 2 3 4

Conceitos Bsicos sobre Redes Programao Cliente-Servidor Servidor e cliente de instncias de classes Aplicativo Tic Tac Toe Game

ROTEIRO

1 2 3 4

Conceitos Bsicos sobre Redes Programao Cliente-Servidor Servidor e cliente de instncias de classes Aplicativo Tic Tac Toe Game

Conceitos Bsicos sobre Redes

Servidor o computador que contm a


aplicao que desejamos executar via remota.

Servio uma aplicao sendo executada no


servidor. comum usar os termos servio e servidor para designar a aplicao a ser executada (ex. servidor de FTP).

Conceitos Bsicos sobre Redes

Cliente a aplicao remota que far a


comunicao e interao com o servio/servidor.

Endereo a informao da localizao de um


computador em uma rede local ou na Internet.

Porta um endereo local em um computador


conectado a uma rede, identificado por um nmero nico.
5

Conceitos Bsicos sobre Redes

Protocolo Padro de comunicao


estabelecido entre cliente e servidor.

Socket o canal de comunicaes para o


envio e recebimento de informaes entre cliente e servidor.

ROTEIRO

1 2 3 4

Conceitos Bsicos sobre Redes Programao Cliente-Servidor Servidor e cliente de instncias de classes Aplicativo Tic Tac Toe Game

Programao Cliente-Servidor

Uma aplicao cliente-servidor em Java segue um padro simples de desenvolvimento Imaginemos uma aplicao onde o cliente deva recuperar uma linha de texto enviada pelo servidor (a linha de texto pode conter a hora local, uma cotao de moeda, etc.).

Programao Cliente-Servidor

O algoritmo do cliente e do servidor para leitura e processamento de uma String.

Programao Cliente-Servidor

O primeiro passo do algoritmo (a criao de uma conexo) feita pela criao de uma instncia da classe Socket.
Podemos obter uma stream de entrada a partir da instncia de Socket (usando o mtodo 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 conexo.
10

Programao Cliente-Servidor

Exemplo
O servio daytime registrado na porta 13 e retorna, quando conectado e solicitado, uma string contendo a data e hora do servidor. O protocolo de comunicao com um servidor destes , ento, muito simples: basta estabelecer a conexo, ler uma nica string e encerrar a conexo.

11

Programao Cliente-Servidor

Esta classe implementa um cliente simples para o servio daytime (porta 13).

12

Programao Cliente-Servidor

Esta classe implementa um servidor para o servio daytime (porta 13).

13

Programao Cliente-Servidor

Exercicio De acordo com a classe ServidorDeDaytime.java do slide anterior implemente o mtodo processaConexo(), compile e execute o cdigo do Servidor em seguida compile e execute o cdigo da classe ClienteDeDaytime.java.

14

ROTEIRO

Conceitos Bsicos sobre Redes 2 Programao Cliente-Servidor


3

Servidor e cliente de instncias de classes Aplicativo Tic Tac Toe Game

15

Servidor e cliente de instncias de classes

Como podemos escrever um servidor para servir

instncias de classes em Java? O cliente tambm dever ser capaz de receber do servidor estas instncias. Vamos usar a classe Livro para criar as instncias que sero enviadas.

16

Servidor e cliente de instncias de classes

Classe Livro

17

Servidor e cliente de instncias de classes

O protocolo de comunicao entre o servidor e o cliente de instncias da classe Livro est mostrado na abaixo.

18

Servidor e cliente de instncias de classes

ServidorDeLivros.java

19

Servidor e cliente de instncias de classes

Continuao... mtodo processaConexo() da classe ServidorDeLivros.java.

20

Servidor e cliente de instncias de classes

ClienteDeLivros.java

21

Servidor e cliente de instncias de classes

Ao invs de usar uma instncia de BufferedReader para ler dados do servidor, iremos usar uma instncia de ObjectInputStream. Existe uma outra diferena entre este cliente e outros: este deve, obrigatoriamente, ter um bloco catch para processar a exceo ClassNotFoundException, que ser criada caso a classe cuja instncia desejamos recuperar no existir do lado do cliente.

22

ROTEIRO

Conceitos Bsicos sobre Redes 2 Programao Cliente-Servidor


3 4

Servidor e cliente de instncia de classes Aplicativo Tic Tac Toe Game

23

Aplicativo Tic Tac Toe Game

O aplicativo do jogo Tic Tac Toe ou Jogo da velha como conhecido popularmente ser desenvolvido utilizando um servidor e vrios clientes conectados simultaneamente, cada cliente tem a sua vez de interagir com o servidor. Os clientes so dependentes. Este aplicativo ilustra o papel de um servidor como mediador em um jogo. O jogo-da-velha um bom exemplo: dois jogadores, atravs dos seus clientes,se conectam com o servidor, e um depois do outro, enviam comandos para este.

24

Aplicativo Tic Tac Toe Game

Alm de receber e processar os movimentos feitos pelos clientes, o servidor responsvel por analisar estes movimentos: - Verificar se eles so vlidos,
- informar os jogadores dos movimentos de ambos - determinar quando o jogo tiver um vencedor

- Encerrar as conexes com os clientes

25

Aplicativo Tic Tac Toe Game

O protocolo de interao entre os clientes e o servidor mostrado na Figura.

26

Aplicativo Tic Tac Toe Game

Classe ServidorDeJogoDaVelha.java

27

Aplicativo Tic Tac Toe Game

Mtodo main()

28

Aplicativo Tic Tac Toe Game

Fim do mtodo main()

29

Aplicativo Tic Tac Toe Game

Mtodo processaJogo()

30

Aplicativo Tic Tac Toe Game

Continuao do mtodo processaJogo()

31

Aplicativo Tic Tac Toe Game

Fim do mtodo processaJogo()

32

Aplicativo Tic Tac Toe Game

Mtodo mostraTabuleiro()

33

Aplicativo Tic Tac Toe Game

Mtodo verificaVencedor()

34

Aplicativo Tic Tac Toe Game

Fim do mtodo verificaVencedor()

35

Aplicativo Tic Tac Toe Game

Fim do mtodo enviaMensagem()

36

Aplicativo Tic Tac Toe Game

Um exemplo de interao de um cliente (telnet) com o servidor de jogo-da-velha pode ser visto na Figura abaixo.

37

FIM

Potrebbero piacerti anche