Estoy trabajando en una aplicación de escritorio usando Java. En mi aplicación, tengo que realizar una prueba de velocidad que mostrará la velocidad de carga y descarga de archivos.Probando la velocidad de carga y descarga de archivos usando FTP
Para cargar la prueba, estoy cargando un pequeño archivo de prueba a un servidor FTP y, de acuerdo con el tiempo, estoy calculando la velocidad de carga del archivo. de manera similar, estoy descargando un servidor de formularios de archivos de prueba y calculando la velocidad de descarga.
Pero el resultado que obtengo no concuerda con la velocidad actual de carga y descarga de archivos FTP. Parece que la conexión establecida al servidor FTP está aumentando el tiempo, por lo tanto, la velocidad resultante que estoy calculando es menor.
aquí es el código de carga de archivos que estoy utilizando:
public int getTransferRate(File filename)
{
int trRate = 0;
try {
OutputStream fout = null;
InputStream bin = null;
connect(ftpUser,ftpPass,ftpServer);
ftp.setFileType(FTPSClient.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
fout = ftp.storeFileStream("testuploadfile");
bin = new FileInputStream(filename);
byte[] b = new byte[8192];
int bytesRead = 0;
long startTime = System.currentTimeMillis();
long endTime = 0;
while ((bytesRead = bin.read(b)) != -1) {
fout.write(b, 0, bytesRead);
bytesUploadedSet += bytesRead;
}
endTime = System.currentTimeMillis();
trRate = (int) ((float) bytesUploadedSet/(endTime - startTime));
} catch (IOException ex) {
Logger.getLogger(FTPFileStorageService.class.getName()).log(Level.SEVERE, null, ex);
}
return trRate;
}
Podría sugerir cualquier enlace o alguna manera de conseguir la carga y descarga de velocidad más cercano.
gracias a todas sus valiosas sugerencias.
Se puede publicar un (mínimo) código de ejemplo para demostrar cómo se está iniciando la transferencia y el cálculo de la velocidad? – SimonJ