私は、Javaを使用してデスクトップアプリケーションで作業しています。私のアプリケーションでは、ファイルのアップロードとダウンロード速度を示す速度テストを実行する必要があります。FTPを使用したファイルアップロードとダウンロード速度のテスト
アップロードテストのために、私はFTPサーバーに小さなテストファイルをアップロードしています。時間に基づいて、ファイルのアップロード速度を計算しています。同様に私はテストファイルフォームサーバーをダウンロードし、ダウンロード速度を計算しています。
結果私は実際のFTPファイルのアップロードとダウンロード速度に合っていません.FTPサーバーへの接続が確立されているようですので、計算速度が遅くなります。ここ
は、私が使用しているファイルアップロードコードです:
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;
}
あなたは、任意のリンクまたは最寄りのアップロードとダウンロード速度を得るためにいくつかの方法を提案でした。
貴重なご意見ありがとうございます。
あなたが転送を開始し、速度を算出する方法を実証する(最小限)のサンプルコードを投稿することができますか? – SimonJ