1

FTP または HTTP を使用して外部パートナーからローカル サイトにテラバイト サイズのデータ​​をダウンロードするクライアント側のデータ ダウンロード システム (Linux 上) を作成する任務を負っています。当社のネットワーク管理者は、特定の帯域幅を超えることはできないと言っています。このようなシステムを実装するための最良の方法は何ですか? 既存のライブラリは存在しますか?

私は独自の FTP および HTTP クライアント (Linux 上の C または Java のいずれか) を作成することにオープンですが、カーネルから離れることを好みます。FTP/HTTP クライアントがソケット read() を呼び出すレートを制限できることはわかっていますが、サーバー側が制限よりも速く write() を呼び出すとどうなりますか?

4

5 に答える 5

2

の上に別のレイヤーを構築できInputStreamますread。メソッドでは、これまでのバイト数をカウントできます。1 秒あたりのバイト数が特定の制限を超えた場合は、ダウンロード スレッドをしばらくスリープ状態にします。残りは TCP のフロー制御が行います。

于 2013-05-30T21:48:44.290 に答える
0

wgetシンプルにするために、Linux を使用している場合は、車輪を再発明する代わりに使用できますか? --limit-rateスイッチを見てください。

しかし、トピックに戻ります:)この答えはあなたを始めることができます:Javaで制限されたダウンロードレートを実装するにはどうすればよいですか?

于 2013-09-23T20:44:48.040 に答える
0

既製の GUI またはコマンド ライン製品を受け入れますか? Filezilla はこれを提供します。lftp と呼ばれる Linux コマンド ライン クライアントもあります。設定可能なパラメーターは、転送速度を制限する net:limit-total-rate です。このクライアントは一度に複数の転送をサポートするため、パラメーター net:limit-rate もあります。

于 2013-09-23T19:47:29.433 に答える