IdTCPServerまたはIdTCPClientを使用して現在の帯域幅を取得する方法は?現在の帯域幅(ダウンロード)速度を取得するにはどうすればよいですか?
クライアントがサーバーからデータをどのくらい高速にダウンロードしているか知りたいですか?
例えば:ダウンロード速度:450 kbpsの
IdTCPServerまたはIdTCPClientを使用して現在の帯域幅を取得する方法は?現在の帯域幅(ダウンロード)速度を取得するにはどうすればよいですか?
クライアントがサーバーからデータをどのくらい高速にダウンロードしているか知りたいですか?
例えば:ダウンロード速度:450 kbpsの
は、OnWorkBegin
にハンドラを割り当てOnWork
、および接続のTIdTCPConnection
オブジェクトのOnWorkEnd
イベント。 OnWorkBegin
イベントにはAWorkCountMax
パラメータがあり、転送される予定の合計バイト数がわかります(あらかじめわかっている場合)。 OnWork
イベントには、OnWorkBegin
イベントが発生してから実際に転送されたバイト数の合計が表示されるAWorkCount
パラメータがあります。
OnWork
イベントが発生するたびに、二つの事象間で転送されたバイト数を決定するために現在AWorkCount
値から前AWorkCount
値を減算し、2つの間に経過した時間の量によってその値を割りイベント。この最終的な値で、必要に応じてb/sec、kb/sec、mb/secなどを計算できます。
あなたがデータを受信/送信する方法を正確に応じて、手動で発射開始するOnWork...
イベントを取得するためにTIdTCPConnection
のBeginWork()
とEndWork()
メソッドを呼び出す必要があります。 Indyの読み取り/書き込みメソッドのほとんどは内部でBegin/EndWork()
を呼び出しません。
質問のタイトルにタグ情報を入れないでください。最初にタグを持つという目的を破り、トピックのトピックを長くして読みにくくします。また、バージョン間に大きな違いがあるIndyのようなものを使用している場合は、使用しているコンポーネントのバージョンを含めると役立ちます。ありがとう。 –