[b]Galera, estou com um trabalho da disciplina de redes da minha faculdade que estou encontrando muitas dificuldades. A ideia inicial é ter um cliente e um servidor, onde ambos possam trocar arquivos. Porém as especificações que a professora solicitou não estou conseguindo implementar. Preciso de uma ajuda, pois só consegui implementei até agora o servidor e o cliente, onde eles estabelecem comunicação. Alguém pode me indicar um arquivo,código ou uma orientação de como posso terminar esse trabalho. Segue abaixo a especificação:
“Descrição
O objetivo do trabalho é implementar o protocolo para efetuar uma transferência de arquivos simples em uma arquitetura cliente - servidor”
Especificação do Protocolo
Cada estação (STA) possui as características de cliente/servidor;
2.
Inicialmente cada STA é configurada para receber um endereço IP, que identifica outra estação (servidora) com a qual ela pode se comunicar e solicitar um arquivo. Cada STA
no sistema mantém um cache com os nomes arquivos disponíveis para transferência, inicializado com as informações do usuário do aplicativo;
3.
O Aplicativo deverá permitir ao usuário buscar por um determinado arquivo.
O protocolo deverá consultar seu cache para verificar se possui a
informação, caso contrário, iniciará um processo de consulta
ao servidor e esperará por uma resposta, sempre informando o estado da comunicação ao usuário do aplicativo;
4.
O protocolo de comunicação deverá abrir um soquet na porta 6000 usando
o número IP configurado para consultas
ao servidor
e esperará uma
resposta.
5.
Caso o aplicativo cliente receba uma resposta com dados, ele deverá informar ao
usuário; caso contrário, ele receberá do servidor uma resposta
6-
Quando um aplicativo atuando no modo servidor recebe uma consulta, ele deve consultar seu
cache;
Se este contiver o arquivo solicitado, ele responderá ao cliente com as informações adequadas na porta 6000. Se o servidor não contiver esta
informação, ele gerará uma resposta do tipo
Comunicação cliente
servidor
Define as normas de comunicação para transferência de blocos de arquivos entre
um cliente e um servidor
.
A implementação deve ser feita através de socket TCP
.
Cada arquivo no sistema deverá ser dividido em blocos de 80 bytes para sua transferência
. Cada bloco deverá ser identificado por um número de seqüência iniciado em 0;
o ultimo bloco poderá não conter 80 bytes, neste caso o bloco
deverá ser preenchido com bytes adicionais até completar os 80 bytes.
Primitivas da comunicação cliente servidor
As primitivas tem um tamanho mínimo de 29 bytes e um tamanho máximo de 92 bytes
Descrição dos campos das primitivas:
Os campos de Endereços contêm endereços IP de quatro bytes.
O campo tipo indica a classe de primitiva de comunicação
:
O valor 1 indica uma solicitação cliente
servidor para um arquivo.
O valor 2 indica uma resposta positiva do servidor, envia o arquivo em blocos
de 80 bytes identificados por um número de sequência.
;
O valor 3 indica uma resposta negativa do servidor para a solicitação do
cliente.
O número de seqüência numera os blocos em que o arquivo será dividido iniciado em 0 e incrementando em 1(um) para cada novo bloco do mesmo arquivo.
O campo Tamanho de Arquivo deverá conter o tamanho total em bytes do bloco de arquivo que estará sendo enviado a fim de facilitar o calculo do último bloco.
Todos os campos de controle serão considerados numéricos e alinhados a direita
Os blocos de arquivos em bytes. Para cada requisição iniciada no cliente ele deverá controlar o tempo de resposta do servidor através de um relógio que permita verificar as
condições de erro caso o servidor não esteja respondendo.
[/b]