/**
* @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());
}
}
}
Classe 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());
}
}
}
REFERÊNCIA : http://guj.com.br/article.show.logic?id=154
Nenhum comentário:
Postar um comentário