2017-11-30 14 views
0

私は、クラウドとアプリケーションの間で通信しているいくつかのプロセスを持っています。今私は自分のコードだけでそれらのプロセスに帯域幅を割り当てたいと思う。 いくつかのリンクを調べて、その方法を調べた後に https://www.codeproject.com/Articles/18243/Bandwidth-throttlingC++アプリケーションの帯域幅調整

この帯域幅の調整が可能な場合は、私にお知らせください。これに関する参考資料やリンクは非常に参考になります。あなたは以下のテクニックを試すことができます

+0

何を試しましたか?いくつかのコード、特にコミュニケーションを扱う部分を表示できますか? – BNT

+0

帯域幅調整の概念を開発する前に、いくつかのロジックを見つけたいと思います。私はリンクを介して行くことによってそれを達成する方法を理解した。私は、帯域幅調整を実現できる他の方法があるかどうかを知りたかっただけです。 –

+0

あなたのリンクを一瞥しました。ネットワークプログラミングに関する詳細はあまりよく分かりませんが、それ以外の簡単な考え方は次のようになります:[sleep() '](http://en.cppreference.com/w/cpp/thread/sleep_for)を挿入するネットワークソケットに書き込むループ(各通信がそれ自身のスレッドまたはプロセスにあると仮定して)スリープ時間を調整して帯域幅を調整できます。同じプロセス/スレッドで複数の通信が発生した場合は、おそらく 'std'コンテナから構築できるスケジューラやsend-queueのようなものが必要です。 – Scheff

答えて

0

は、

  1. あなたは、所望のデータ転送速度と現在の転送速度を定義することができます。現在の転送速度は、クラウド間で送受信できる秒数によって異なりますが、現在の転送速度をスケールファクタXで増減できますが、これは必要な転送速度を超えて増加してはなりません。ソケットクラスでカスタムクラスを作成して、読み書き機能を作成することができます。

  2. 2番目の値は、ソケットでの読み取り/書き込み操作を実行するためのデータ量です。このデータ量は、読み取り/書き込み操作に適した単位/トークンとみなすことができます。この技法をカスタムクラスに追加することもできます。

関連する問題