0

Web ページと Android デバイスの両方にコンテンツをストリーミングする Java ベースのメディア サーバーがあります。複数のユーザーが使用できるように設定されており、他のサーバーと通信してメディアを共有することもできます。

メディア サーバーのサービスを介して総ネットワーク トラフィック (kb/s) を監視できるようにしたいので、サーバーを見なくても、Android デバイスまたは Web ページを介して確認できます。

Java でこの情報を取得する簡単な方法はありますか? ある種の Linux リソース ファイルですか? 私は netstat とグーグルで他のいくつかを見てきましたが、私が望むものを明白な方法で提供していないようです。総トラフィックが必要なだけで、誰が私に話しかけているかを知る必要はありません。

助けてくれてありがとう。:)

pps: 私は OpenSUSE の最新リリースを使用していますが、Fedora で動作するバージョン (最新) もあります。

4

1 に答える 1

3

ネットワークの統計情報は、http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html/proc/net/devから参照できます。詳細については、こちらを参照してください。

次のように表示されます。

インター| 受け取る | 送信する
 顔 |バイト パケット エラー ドロップ fifo フレーム 圧縮されたマルチキャスト|バイト パケット エラー ドロップ fifo colls キャリア 圧縮
    lo: 2504 30 0 0 0 0 0 2504 30 0 0 0 0 0 0
  eth0:33769785 2548318 0 0 0 0 0 0 4146854 215379 0 0 0 0 0 0
  eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0

したがって、ファイルを開き、各行を読み、最初の列をチェックして関心のあるインターフェイスを見つけ、受信および/または送信されたバイトおよび/またはパケットを抽出する必要があります。読み取り間の時間を追跡する場合、次のようにレートを計算できます。

= 時点のバイト数 = 時点のバイト数、 より少し後の時間とする。
b0t0
b1t1t0

r次に、次のように率を計算できます。
r = (b1 - b0) / (t1 - t0)

于 2012-05-06T15:36:57.907 に答える