Pracuję w aplikacji desktopowej przy użyciu java. W mojej aplikacji muszę wykonać test prędkości, który pokaże prędkość pobierania i pobierania pliku.Testowanie wysyłania i pobierania plików za pomocą FTP
Do przesłania testu Przesyłam mały plik testowy na serwer FTP i na podstawie podanego czasu obliczam prędkość wysyłania plików. podobnie pobieram plik testowy z serwera i obliczam prędkość pobierania.
Ale wynik, który otrzymuję, nie pasuje do rzeczywistego pobierania i pobierania pliku FTP. Wygląda na to, że nawiązanie połączenia z serwerem FTP zwiększa czas, dlatego wynikowa prędkość, którą obliczam, jest mniejsza.
oto kod przesyłanie plików używam:
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;
}
mógłbyś zasugerować dowolny link lub jakiś sposób na najbliższym wysyłania i pobierania prędkość.
Dzięki wszystkim cennym sugestiom.
można umieścić (minimalny) przykładowy kod do wykazania, w jaki sposób są wykonania przelewu i obliczania prędkości? – SimonJ