01
 
home | sobre mim | photos | poesia | seminarios | documentacao | contactar | disclaimer | rss feed
Agosto 2010
+++ respect
últimos comentários :::
utilizadores online: 0


MVBFT - My Very Basic File Transfer (JAVA)
 
Este é um programa em Java feito para a cadeira de Sistemas Distribuídos.
Mais especificamente, pretende dar resposta ao exercício número 1 deste enunciado.

Foi desenvolvido com o NetBeans 5.5 e JDK 1.6.x.

Necessita de vários aperfeiçoamentos mas já possibilita:
- Listar ficheiros
- Receber ficheiros
- Enviar ficheiros
- Eliminar ficheiros

O protocolo é muito simples:
LIST <- retorna uma listagem dos ficheiros no directório actual
GET <- retorna o ficheiro especificado pelo nome
PUT <- recebe o ficheiro especificado pelo nome
DEL <- elimina o ficheiro especificado pelo nome
HELP <- retorna uma listagem de comandos disponíveis

Este código usa threads para:
a) processar cada novo cliente
b) para abrir um novo socket para o envio / recepção de ficheiros!

A ordem de execução é a seguinte:
a) a classe Main cria um novo objecto MainServer que escuta por ligações no porto 5343
b) quando a classe MainServer aceita uma nova ligação, cria um objecto ServerThread e executa-o numa thread()
c) esta classe lê o input enviado pelos clientes e, através de um objecto MVBFTProtocol, processa os pedidos
d) a classe MVBFTProtocol está encarregue de interpretar / processar os pedidos:
d.1) quando encontra um pedido válido processa-o numa instância de um objecto Engine
d.1.1) se o pedido é "DEL" elimina o ficheiro
d.1.2) se o pedido é "GET"
d.1.2.1) lança uma thread com um objecto FileServer que fica à escuta num porto dinâmico
e envia o número do porto onde o ficheiro será enviado ao cliente
d.1.2.2) quando o envio termina a ligação é terminada.
d.1.3) se o pedido é "PUT"
d.1.3.1) lança uma thread com um objecto FileServer que fica à escuta num porto dinâmico
e envia o número do porto onde o ficheiro será recebido do cliente
d.1.3.2) para terminar o envio é necessário enviar a seguinte sequência "\n.\n"
e) o objecto MVBFTProtocol retorna o resultado ao ServerThread() que se encarrega de o enviar ao seu cliente.

NOTA: os eventos de erro não estão a ser devidamente tratados mas isto é apenas um exemplo de um
serviço de transferência de ficheiros.
NOTA 2: A próxima versão deverá aproveitar o código actual mas tornar este serviço p2p.
NOTA 3: Como é óbvio, este código já está pronto para responder às necessidades do 3º exercício!
NOTA 4: Este código foi baseado no KnockKnockServer da SUN! Aconselho a darem uma vista de olhos
à versão MultiThread para verem um exemplo de um protocolo simples e threads.
[2 comentários]
[577 views]
(2007-04-03 01:55:00)
 

 
Navegação rápida

Pesquisar
 

Copyright (c) 2000-2007
Absolutely no rights reserved.
Visitas: stats!
Uptime: 0 dias, 0 horas e 0 minutos
Página gerada em: 0.072s