Servidor FTP em Java

3 respostas
G

Bom dia galera,

estou tentando fazer o seguinte:

no meu trabalho temos sempre que desenvolver um código em java que é interpretado por uma interface generica feita em java.
o que acontece é que esse codigo tem que rodar na maquina do cliente…
entao o que eu estou tentando fazer, quero disponibilizar uma aplicacao para que o cara faça download do servidor dos pacotes “plugins” para o pc do cliente via ftp ou algo parecido…

nem sei por onde comecar… alguem tem uma luz?

se nao me compreenderem… postem ai para que eu me explique melhor!!!

!!!lol!!! ai gente… meu emprego depende dissooooo!!!aaaaaaaaaaaaaaaaaaaa

3 Respostas

G

caraca!!!

vai funcionar o esquema aqui lol!!!

será que tem como mostrar uma barrinha de progressao?
no projeto do view handler consta isso… o.O

deve ter… vou tentar aqui

qlqer coisa eu posto

vlw man

K

http://guj.com.br/java.artigo.154.1.guj

espero q ajude.

:lol:

K

Usando sockets

Cliente

/**
 * @author marcio.ishida
 *
 */
public class ClienteMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int port = 5298;
		String IP = "localhost";
		// Caminho do destinho
		//String caminhoDestino = "C:/Temp/Arquivo/";
		String caminhoDestino = "C:/Documents and Settings/marcio.ishida/Desktop/arquivos/";
		try {
			// Abrindo o socket
			Socket MyClient = new Socket(IP, port);
			
			// Cria stream de entrada e saída
			DataInputStream input = new DataInputStream(MyClient.getInputStream());
			DataOutputStream output = new DataOutputStream(MyClient.getOutputStream());
			// Recebe mensagem
		 	System.out.println(input.readUTF());

			String arquivo = JOptionPane.showInputDialog("Entre com o nome do aqruivo");
			// Envia mensagem
			output.writeUTF(arquivo);
			
			ObjectInputStream in = new ObjectInputStream(MyClient.getInputStream());
			String fileName = in.readUTF();
			
			if(fileName != null){
				long size = in.readLong();
				System.out.println("Processando arquivo: " + fileName + " - "+ size + " bytes.");

				// Verifica se tem a pasta de destino criada, caso nao tenha ele cria
				File file = new File(caminhoDestino);
				if(file.exists() == false){
					file.mkdir();
				}
				
				FileOutputStream fos = new FileOutputStream(caminhoDestino + fileName);
				byte[] buf = new byte[4096];
				while (true) {
					int len = in.read(buf);
					if (len == -1)
						break;
	
					fos.write(buf, 0, len);
				}			
				
				fos.flush();
				fos.close();
			}
			System.out.println(input.readUTF());
			MyClient.close();

		} catch (Exception e) {
			System.err.println("CLIENTE ERRO: " + e.toString());
		}

	}

}

Servidor

/**
 * @author marcio.ishida
 *
 */
public class ServerMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int port = 5298;
		try {
			// Abrindo o socket
			ServerSocket ss = new ServerSocket(port);
			
			// Caminho que vai procurar o arquivo passado pelo cliente
			String caminho = "C:/Documents and Settings/marcio.ishida/Meus documentos/";
			//File f = new File("C:/Documents and Settings/marcio.ishida/Meus documentos/telaStatus.jar");
			while (true) {
				System.out.println("Esperando por arquivos.");
				Socket socket = ss.accept();
				
				DataInputStream input = new DataInputStream(socket.getInputStream());
				DataOutputStream output = new DataOutputStream(socket.getOutputStream());
				// Envia mensagem
				output.writeUTF("Bem-vindo, você está conectado.");				
				
				String arquivo = input.readUTF();
				System.out.println("Arquivo :" + arquivo);
				File file = new File(caminho + arquivo);
				
				if(file.exists()){
					ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
					System.out.println("Transferindo o arquivo: " + file.getName());
					out.writeUTF(file.getName());
					out.writeLong(file.length());
					FileInputStream filein = new FileInputStream(file);
					byte[] buf = new byte[4096];

					while (true) {
						int len = filein.read(buf);
						if (len == -1)
							break;
						out.write(buf, 0, len);
					}
					out.close();
					output.writeUTF("Arquivo enviado:");
					
				}else{
					output.writeUTF("Não existe o arquivo!");
				}
				ss.close();
			}
		} catch (Exception e) {
			System.err.println("SERVIDOR ERRO: " + e.toString());
		}

	}

}
Criado 14 de julho de 2008
Ultima resposta 14 de jul. de 2008
Respostas 3
Participantes 2