Gopher utilizando sockets TCP Trabalho da disciplina Projeto de Software II Professor: Ismael Humberto dos Santos Aluno: Leandro Chernicharo Matrícula:001022404 Dezembro de 2002 Objetivo O objetivo desse trabalho é implementar um browser no padrão do Gopher e um servidor que processe informações de classificados de empregos com acesso a Banco de Dados utilizando JDBC. Recursos de Interface A interface do aplicativos cliente e servidor utilizam do recurso de Skins, o que deixa o ambiente de interação com o usuário muito mais agradável. O Servidor O servidor é sem estado e é iniciado e encerrado manualmente por uma interface gráfica que contém o log das solicitações feitas O Servidor O Servidor Ao processar as requisições, o servidor gera uma string com os dados do banco de dados e a retorna para o browser. Para a concatenação usa-se o objeto StringBuffer. O Servidor O objeto StringBuffer gerencia a concatenação da resposta sem que se precise criar vários objetos String, utilizando, assim, menos memória. O Servidor Exemplo sem StringBuffer: String resp = “”; [...] while( rs.next() ){ resp = resp + String.valueOf( rs.getInt("cod_categoria") ) + " - " + rs.getString( "nome_categoria" ) + "\n"; }//Temos dois objetos String a cada iteração O Servidor Exemplo com StringBuffer: StringBuffer resp = new StringBuffer(“”); [...] while( rs.next() ){ resp.append( String.valueOf( rs.getInt("cod_categoria") ) + " - " + rs.getString( "nome_categoria" ) + "\n" ); }//Só existe o objeto StringBuffer O Cliente O Browser cliente tem um menu lateral à esquerda para exibir os tópicos das páginas e uma área de exibição das “folhas” à direita. O Cliente As requisições são passadas ao servidor em uma string com o endereço completo da página. O primeiro item do endereço informa ao servidor quantos itens vêm em seguida . Os demais itens representam a hierarquia da página O Cliente Exemplo: O endereço 3 1 3 4 representa: • O primeiro número (3) indica que três outros dígitos estão no endereço; •Os outros representam a hierarquia da página: O quarto item da terceira opção da primeira página a partir da Raiz. O Cliente