enviar y recibir archivos
El envío y la recepción de un archivo básicamente se descompone en dos simples trozos de código.
código que recibe:
ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);
Socket connection = serverSoc.accept();
// code to read from connection.getInputStream();
código de envío:
File fileToSend;
InputStream fileStream = new BufferedInputStream(fileToSend);
Socket connection = new Socket(CONNECTION_ADDRESS, LISTENING_PORT);
OutputStream out = connection.getOutputStream();
// my method to move data from the file inputstream to the output stream of the socket
copyStream(fileStream, out);
La pieza envío de código se ejecutó en el equipo que está enviando el código cuando se quieren enviar un archivo.
El código de recepción debe colocarse dentro de un bucle, de modo que cada vez que alguien quiera conectarse al servidor, el servidor pueda manejar la solicitud y luego volver a esperar en serverSoc.accept().
Para permitir el envío de archivos entre ambas computadoras, cada computadora necesitará ejecutar el servidor (recibiendo código) para escuchar los archivos entrantes, y ambos necesitarán ejecutar el código de envío cuando deseen enviar un archivo.
Barra de progreso
El JProgressBar
de oscilación es bastante fácil de usar.Sin embargo, hacer que funcione correctamente y mostrar el progreso actual de la transferencia de archivos es un poco más difícil.
Para que aparezca una barra de progreso en un formulario, solo se debe colocar en un JFrame
y quizás configurar setIndeterminate(false)
para que muestre que su programa está funcionando.
Para implementar correctamente una barra de progreso, deberá crear su propia implementación de SwingWorker
. Los tutoriales de Java tienen un buen ejemplo de esto en su lesson in concurrency.
Este es un problema bastante difícil por sí solo. Yo recomendaría hacer esto en su propia pregunta si necesita más ayuda.
¿Está empujando o tirando del archivo? ¿Subiendo o descargando? –