MrTrotta2010 / MyFTP

Implementação de um protocolo FTP como trabalho prático para a disciplina de Redes 2019/2 da UFSJ.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MyFTP

Implementação de um protocolo FTP como trabalho prático para a disciplina de Redes 2019/2 da UFSJ.

Requisitos:

  • C e Python3

Comandos disponíveis:

  • login usuario senha : faz login no servidor
  • ls: não recebe nenhum argumento e exibe os arquivos adicionados ao servidor pelo usuário e seus tamanhos em bytes
  • put arquivo: transefere um arquivo de nome arquivo ao servidor. Obs: o arquivo a ser transferido precisa estar na mesma pasta que o programa ftpclient.py. Passe somente o nome do arquivo a ser enviado; passar o endereço completo reultará em comportamento inesperado
  • get arquivo: transefere um arquivo de nome arquivo de volta ao cliente. Obs: assim, como no comano put, deve-se passar somente o nome do arquivo e, não, seu caminho completo
  • exit: encerra a sessão do usuário e finaiza o programa cliente.

Para rodar:

  • Servidor: Compilar com $ make e rodar com $ ./ftpserver <porta>
  • Cliente: $ python ftpclient.py <ip_servidor> <porta>

Funcionamento geral:

O programa do servidor, ao ser rodado, criará um socket e o atrelará à porta passada como argumento na execução e, em seguida, aguardará conexões. Com o servidor rodando, o programa do cliente pode ser executado diversas vezes para acessar os arquivos de diferentes usuários.

Ao iniciar o cliente, ele se conectará ao IP e à porta expecíficados na execução e aguardará o login do usuário. O usuário não será capaz de executar nenhum comando sem antes fazer login. Feito o login, o usuário poderá enviar e recuperar qualquer número de arquivos do servidor, bem como listar os arquivos que estão lá. Vale ressaltar, no entanto, que um determinado usuário terá acesso somente aos seus arquivos no servidor e seus arquivos serão invisíveis aos outros usuários, isso porque cada usuário tem uma pasta associada a si no servidor, bem como um arquivo de controle que armazena os arquivos contidos em sua pasta.

Para encerrar a sessão, o usuário deve digitar o comando exit, que encerrará o programa do cliente. Nesta versão do MyFTP, os usuários devem ser criados manualmente, como explicado a seguir.

Criação de usuários:

  • Escolhidos um nome de usuário e uma senha, deve-se editar o arquivo Servidor/Dados/usuarios.data, adicionado uma linha que contém tais informações, nessa ordem, separados por espaço. Ex: fulano 12345.
  • Em seguida, o usuário deve adicionar à pasta Servidor/Dados/ um arquivo de nome "usuario_files.data". Ex: "fulano_files.data".
  • Por fim, dentro do diretório Servidor/Arquivos/ deve ser adicionada uma pasta cujo nome seja o nome do usuário. Ex: Servidor/Arquivos/fulano/

Para remover o usuário, todas as alterações acima devem ser desfeitas.

About

Implementação de um protocolo FTP como trabalho prático para a disciplina de Redes 2019/2 da UFSJ.


Languages

Language:TSQL 93.4%Language:Python 4.2%Language:C 1.8%Language:Makefile 0.7%Language:Shell 0.0%