Invio e ricezione di file
L'invio e la ricezione di un file rompe sostanzialmente verso il basso per due semplici pezzi di codice.
codice Recieving:
ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);
Socket connection = serverSoc.accept();
// code to read from connection.getInputStream();
codice di invio:
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);
Il pezzo invio del codice verrà correva sul computer che invia il codice quando vogliono inviare un file.
Il codice ricevente deve essere inserito in un ciclo, in modo che ogni volta che qualcuno vuole connettersi al server, il server può gestire la richiesta e quindi tornare ad attendere su serverSoc.accept().
Per consentire l'invio di file tra entrambi i computer, ciascun computer dovrà eseguire il server (codice ricevente) per ascoltare i file in arrivo e entrambi dovranno eseguire il codice di invio quando desiderano inviare un file.
Progress Bar
Il JProgressBar
in Swing è abbastanza facile da usare.Tuttavia, farlo funzionare correttamente e mostrare i progressi attuali del trasferimento dei file è leggermente più difficile.
Per visualizzare una barra di avanzamento su un modulo, è sufficiente rilasciarlo su un JFrame
e forse impostare setIndeterminate(false)
in modo che indichi che il programma funziona.
Per implementare correttamente una barra di avanzamento è necessario creare la propria implementazione di SwingWorker
. Le esercitazioni Java hanno un buon esempio di ciò nel loro lesson in concurrency.
Questo è un problema abbastanza difficile da soli. Consiglierei di chiedere questo nella sua stessa domanda se hai bisogno di ulteriore aiuto.
Stai spingendo o tirando il file? Caricamento o download? –