Servidor FTP em Java

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

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

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

espero q ajude.

:lol:

Usando sockets

Cliente

[code]
/**

  • @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());
	}

}

}[/code]

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());
		}

	}

}