Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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
15
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
Classe Livro
17
O protocolo de comunicao entre o servidor e o cliente de instncias da classe Livro est mostrado na abaixo.
18
ServidorDeLivros.java
19
20
ClienteDeLivros.java
21
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
23
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
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
25
26
Classe ServidorDeJogoDaVelha.java
27
Mtodo main()
28
29
Mtodo processaJogo()
30
31
32
Mtodo mostraTabuleiro()
33
Mtodo verificaVencedor()
34
35
36
Um exemplo de interao de um cliente (telnet) com o servidor de jogo-da-velha pode ser visto na Figura abaixo.
37
FIM