2012-05-06 12 views
0

私は、WebページとAndroidデバイスの両方にコンテンツをストリーミングするJavaベースのメディアサーバーを持っています。複数のユーザーが使用できるように設定されており、他のサーバーと話したり、メディアを共有したりすることもできます。Javaを使用したLinuxでのネットワーク使用状況の監視

メディアサーバーのサービスを介してネットワークトラフィック(kb/s)全体を監視できるようにしたいので、自分のサーバーを見ることなくAndroidデバイスまたはWebページから見ることができます。

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

ありがとうございました。 :)

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

答えて

1

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

あなたはこのようなものが表示されます:だから

 
Inter-| Receive            | Transmit 
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed 
    lo: 2504  30 0 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  0   0 

あなたが気にインターフェース(複数可)を見つけるために、ファイルを開いて、各ラインを読んで、最初の列をチェックする必要があり、その後、よ受信および/または送信されたバイトおよび/またはパケットを抽出する。あなたは読み込みの間の時間を追跡する場合は、このようにレートを計算することができます

は、いくつかの時間後にt0より時間t1、で
b0 =バイト時間t0
b1 =バイトでみましょう。

次に、あなたはこのように、レート、rを計算することができます。
r = (b1 - b0)/(t1 - t0)

+0

をだから私はそこにバイト数を読み、その後、数秒で再びそれを読むことができたと言って、その差/時間しているだろう私の率ですか?うーん、それはそれを行う興味深い方法です。私はそうするのが難しくないと思います。 – Crandy

+0

正確に。私はあなたが求めている間に私の答えを更新しました。 :-) –

+0

素晴らしい。すべてがXMLファイルで行われているので、XMLファイルを更新するタイミングをとるサービスをいくつか用意しておきます。アドバイスをありがとう! – Crandy

関連する問題