Hola gente del foro soy nuevo por aki y quiero pedirles ayuda en un problemita que tengo.
Estoy realizando una aplicacion en Java que me permita el envio de archivos usando Sockets con una aplicacion Cliente y una Servidor. El cliente se conecta al servidor y este le envia un archivo a Servidor. Pero quisiera poner una Barra de progreso que me muestre cuanto falta para terminar el proceso de transferencia. He buscado pero no doy con la solucion. He aki mi codigo:
//Cliente
import java.net.*;
import java.io.*;
import javax.swing.*;
class Cliente
{
public static void main
(String[] args
) {
int in;
byte[] byteArray;
String direccionArchivo
= null;
try
{
IP
= JOptionPane.
showInputDialog(null,
"Ingrese la direccion IP a la cual desea conectarse",
"Cliente",
JOptionPane.
CANCEL_OPTION); if(via.isConnected())
{
JOptionPane.
showMessageDialog(null,
"Conectado al servidor: " + IP
);
selector.setDialogTitle("Selecciona el archivo a enviar");
int resultado = selector.showOpenDialog(null);
{
archivo = selector.getSelectedFile();
direccionArchivo = archivo.getPath().toString();
}
//Enviamos el nombre del archivo
dos.writeUTF(archivo.getName());
byteArray = new byte[8192];
while ((in = bis.read(byteArray)) != -1)
{
bos.write(byteArray,0,in);
}
bis.close();
bos.close();
JOptionPane.
showMessageDialog(null,
"El archivo: " + archivo.
getName().
toString() + " se envio correctamente!");
}
}
}
//Servidor
import java.net.*;
import java.io.*;
import javax.swing.*;
class Servidor
{
public static void main
(String[] args
) {
byte[] receivedData;
int in;
try{
while ( true ) {
connection = server.accept();
receivedData = new byte[1024];
//recibimos el nombre del fichero
file = dis.readUTF();
file = file.substring(file.indexOf('/')+1,file.length());
//aqui se escribe el archivo en la ubicacion donde este el Servidor.jar
while ((in = bis.read(receivedData)) != -1){
bos.write(receivedData,0,in);
}
bos.close();
dis.close();
JOptionPane.
showMessageDialog(null,
"Archivo (" + file.
toString() + ") Recibido satisfactoriamente"); }
}
}
}
Buscando en la Web encontre un codigo para desarrollar un JProgressBar
public void iterate() {
while (num < 2000) {
current.setValue(num);
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
num += 95;
}
}
Si pueden ayudarme a fusionar El cliente y Servidor con la JProgress Bar se lo agradeceria mucho.
Muchas Gracias