Giter Club home page Giter Club logo

ftp_java's Introduction

Instruções de Uso e Execução da Aplicação Java com Gradle

Requisitos

Certifique-se de que o Java e o Gradle estão instalados em seu sistema antes de executar a aplicação.

Instruções de Execução do Cliente

  1. Abra o terminal.
  2. Navegue até o diretório raiz do projeto.
  3. Execute o seguinte comando para compilar e executar a aplicação:
git clone https://github.com/STD29006-classroom/2023-02-listas-de-exercicios-01-faber222.git

cd STD29006-classroom/2023-02-listas-de-exercicios-01-faber222
cd client

gradle run --args "<ip> <porta> <operacao> <caminho/do/arquivo>"

Executando o Servidor

  1. Abra o terminal.
  2. Navegue até o diretório raiz do projeto.
  3. Execute o seguinte comando para compilar e executar o servidor:
git clone https://github.com/STD29006-classroom/2023-02-listas-de-exercicios-01-faber222.git

cd STD29006-classroom/2023-02-listas-de-exercicios-01-faber222
cd server

gradle run --args "<porta> <diretorio_de_destino>"

Funcionamento do Cliente

Este código implementa um cliente TCP em Java que é capaz de enviar arquivos para um servidor específico. O programa utiliza argumentos de linha de comando para receber informações cruciais, como o endereço IP do servidor, a porta a ser utilizada, a operação desejada e o caminho do arquivo que se pretende enviar.

Ao executar o programa com os argumentos corretos, o cliente estabelece uma conexão com o servidor e envia o arquivo especificado. Ele primeiro envia o nome do arquivo para o servidor por meio de um ObjectOutputStream e, em seguida, envia o conteúdo do arquivo por meio de um DataOutputStream.

Durante a execução, o programa lida com possíveis exceções, como a desconexão inesperada do servidor. Além disso, o código garante o fechamento adequado de recursos para evitar vazamentos de memória ou conexões não fechadas.

Certifique-se de configurar e executar um servidor correspondente para receber os arquivos enviados pelo cliente. O programa pressupõe que o servidor está configurado e pronto para aceitar conexões.

Funcionamento do Servidor

Este código implementa um servidor TCP simples em Java que aguarda conexões de clientes para receber arquivos. O programa utiliza argumentos de linha de comando para configurar a porta na qual o servidor deve aguardar por conexões e o diretório de destino para salvar os arquivos recebidos.

Ao executar o servidor, ele aguarda por conexões de clientes. Quando um cliente se conecta, o servidor lê o nome do arquivo a ser recebido por meio de um ObjectInputStream e, em seguida, recebe o conteúdo do arquivo por meio de um InputStream. O servidor grava os dados recebidos em um arquivo no diretório especificado.

O código é projetado para funcionar continuamente, aguardando e lidando com múltiplas conexões de clientes. Ele lida com exceções que podem surgir durante o processo de comunicação com o cliente e garante o fechamento adequado de recursos para evitar vazamentos de memória ou conexões não fechadas.

Certifique-se de executar o servidor em um ambiente adequado e configurado para receber conexões dos clientes. O servidor deve estar em execução antes de tentar se conectar a ele com o cliente.

Passo a Passo da Conexão Cliente-Servidor

1. Inicialização do Servidor

O servidor é inicializado e aguarda por conexões de clientes em uma porta específica.

Exemplo de código do servidor (ServidorTcp.java):

ServerSocket socket = new ServerSocket(Integer.parseInt(args[0]));

2. Conexão do Cliente com o Servidor

O cliente inicia uma conexão com o servidor, especificando o endereço IP e a porta do servidor.

Exemplo de código do cliente (ClienteTcp.java):

Socket conexao = new Socket(ipDoServidor, servidorPorta);

3. Troca de Informações

O cliente envia o nome do arquivo para o servidor, seguido pelo conteúdo do arquivo.

Exemplo de código do cliente (ClienteTcp.java):

ObjectOutputStream outputStream = new ObjectOutputStream(conexao.getOutputStream());
outputStream.writeObject(nomeArquivo);

4. Recebendo Informações no Servidor

O servidor lê o nome do arquivo enviado pelo cliente e cria um arquivo correspondente no diretório especificado.

Exemplo de código do servidor (ServidorTcp.java):

ObjectInputStream inputStream = new ObjectInputStream(clientSocket.getInputStream());
String caminhoArquivo = (String) inputStream.readObject();

5. Transferência de Dados

O cliente envia os dados do arquivo para o servidor, que os recebe e grava no arquivo criado.

Exemplo de código do cliente (ClienteTcp.java):

saida.write(buffer, 0, byteLido);

Exemplo de código do servidor (ServidorTcp.java):

outputStream.write(buffer, 0, byteLido);

6. Encerramento da Conexão

Após a transferência bem-sucedida, o cliente e o servidor encerram a conexão adequadamente.

Exemplo de código do cliente (ClienteTcp.java):

outputStream.close();
entradaArquivo.close();

Exemplo de código do servidor (ServidorTcp.java):

inputStream.close();
outputStream.close();

Requisitos atendidos

  • Conexão Cliente ao Servidor
  • Multithread do Servidor
  • Função de Download
  • Função de Download com verificação de existência
  • Função de Upload
  • Função de Upload com verificação de existência
  • Passar informações como argumento de linha de comando
  • Arquivo UML

ftp_java's People

Contributors

faber222 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.