|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2001
Messaggi: 291
|
[JAVA] JProgressBar per copia file su ciclo while
Salve ragazzi
è da un paio di giorni che cercavo di capire la comunicazione tra server e client in java. Allora mi sono fatto questo piccolo programmino che trasferisce un file da un computer a un altro. Volevo però dargli anche una semplice veste grafica per capire come funziona la JProgressBar. Mi sono messo su internet (sito della sun compreso) ma proprio non riesco a capire come devo fare. Ho provato a smanettare con la jprogressbar in un'altra classe giusto per capire come fare, il problema però relativo al fatto che deve avanzare e terminare con la copia del file e qui proprio non riesco a capire come fare Ho cercato su internet ma niente, complice la mia ignoranza proprio non ci arrivo per capirci il metodo è questo (chiedo scusa ma stavo cercando di capire alcune cose e ho un po' sballato qualcosina alla fine è il ciclo while per la copia del file che importa):Codice:
public void riceviStream() throws IOException, ClassNotFoundException, InterruptedException {
// codice che serve per collegarsi
// chi riceve nel test e' il SERVER
// il client invia
while (true) {
try {
ServerSocket serverSocket = new ServerSocket(6789);
System.out.println("In attesa...");
Socket server = serverSocket.accept();
System.out.println("Sei ora connesso con: "
+ server.getInetAddress().getHostAddress());
//ricevo il nome del file
ObjectInputStream ois = new ObjectInputStream(
server.getInputStream());
//copio il messaggio nella string e lo stampo
nameFile = (String) ois.readObject();
System.out.println("SERVER: " + nameFile);
peso = (long) ois.readObject();
System.out.println("SERVER: peso file: " + peso);
// ricevo il file dal client
File ecotest = new File("/home/sergei/Scaricati/" + nameFile);
FileOutputStream fos = new FileOutputStream(ecotest, true);
byte[] buffer = new byte[1024];
int letti;
// leggo e scrivo su file
while ((letti = ois.read(buffer)) != -1) {
fos.write(buffer, 0, letti);
// calcolo la velocita'
totalRead += letti;
int speed = (int) (BYTES_PER_MIB * totalRead / (System
.nanoTime() - start + 1));
//test per calcolare mb passati
int size = (int) (peso / 1024);
totale = speed + totale;
int tot = totale / 1024;
//System.out.println(speed + "Kb/s");
System.out.println(tot + " di " + size + " vel: " + speed + " kb/s");
}
} catch (SocketException se) {
se.printStackTrace();
//Thread.sleep(5000);
//riceviStream();
}
}
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:38.










alla fine è il ciclo while per la copia del file che importa):








