gobbo
Julho 14, 2008, 8:31am
#1
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
gobbo
Julho 14, 2008, 9:11am
#2
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
Usando sockets
Cliente
[code]
/**
*/
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());
}
}
}