|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 438
|
[JAVA]Visualizzare velocità di trasferimento del socket
Ciao a tutti volevo sapere se era possibile visualizzare via linea di comando o magari con una semplice finestra grafica, la velocità di trasferimento di un file scambiato attraverso un socket.
Codice:
ServerSocket sClient=new ServerSocket(12345);
Socket sDati=sClient.accept();
DataInputStream input=new DataInputStream(sDati.getInputStream());
FileOutputStream fileCopia=new FileOutputStream(nomefile);
int c;
System.out.println("inizio copia");
while((c=input.read())!=EOB)
fileCopia.write(c);
fileCopia.close();
input.close();
System.out.println("fine copia");
p.s so che non si fà l'assegnamento nel ciclo, però era un vecchio esercizio che ho copiato e incollato
__________________
Cpu:Intel Core i7 2600k, MB:Asrock P67 Professional, Ram: Corsair Vengeance 1866Mhz 2x4Gb, VGA:Ati Radeon x1950xtx 512Mb PS3: Fifa12, Colin Dirt 2, Gran Turismo 5, Assasins Creed: Brotherhood |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 438
|
up
__________________
Cpu:Intel Core i7 2600k, MB:Asrock P67 Professional, Ram: Corsair Vengeance 1866Mhz 2x4Gb, VGA:Ati Radeon x1950xtx 512Mb PS3: Fifa12, Colin Dirt 2, Gran Turismo 5, Assasins Creed: Brotherhood |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
|
bè si ...però ti devi creare tu il codice calcolandoti a manina la bandwidth, a meno di non trovare in giro qualche soluzione poco incasinata da poter utilizzare...
comunque, per comodità, potresti crearti una classe che estende l'OutputStream (o anche l'InputStream, dipende da come vuoi svolgere l'esercizio) implementando i metodi base e aggiungendotene uno che a ogni chiamata calcola, alla grossolana, la banda utilizzata dall'ultima chiamata del metodo ......una cosa del tipo: Codice:
import java.io.IOException;
import java.io.OutputStream;
public class BandwidthOutputStream extends OutputStream {
private OutputStream os = null;
private int count = 0;
private long lastTime = 0;
public BandwidthOutputStream(OutputStream os) {
this.os = os;
}
public void write(int b) throws IOException {
os.write(b);
count++;
lastTime = System.currentTimeMillis();
}
public int getBandwidthInKB() {
//converto la quantità di dati inviati in KB
int kb = count/1024;
//calcolo il tempo trascorso in sec. dall'ultima chiamata del metodo
int sec = (int)(System.currentTimeMillis()-lastTime)/1000;
//ritorno i KB/sec
return kb/sec;
}
}
Quà trovi qualcosa di più completo, prolisso ...quasi logorroico http://docstore.mik.ua/orelly/java-ent/dist/ch08_04.htm Sui forum di programmazione di solito girano dei bot senzienti di nome PGI o similari che annoverano in se tutta la conoscenza/onniscenza
__________________
---------------------------------------------- File reality.sys corrupted, Reboot Universe? Y/N ---------------------------------------------- |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:47.



















