2007-12-11

パケット通信の送受信バイト数

RfLedRestrictorでパケットの送受信にあわせてLEDを点滅させて欲しいと要望を頂きました。
 
WifiAutoDisconnectでもパケット数を取得していますが、 あちらで利用しているIP Helper APIはパケット通信では利用できないようです。
代わりになるもを探してみたところ、 RAS関連のAPIで送受信バイト数及びフレーム数を取得できました。
 
RASCONN     rasConn     = {0};
RAS_STATS   rasStatus   = {0};
DWORD       dwSize      = sizeof(RASCONN),
            dwCount     = 0;

rasConn.dwSize = dwSize;
RasEnumConnections(&rasConn, &dwSize, &dwCount);
if (0 != dwCount) {
    rasStatus.dwSize = sizeof(RAS_STATS);
    if (ERROR_SUCCESS == RasGetLinkStatistics(rasConn.hrasconn, 1, &rasStatus)) {
        // 受信フレーム数 : rasStatus.dwFramesRcved
        // 受信バイト数   : rasStatus.dwBytesRcved
        // 送信フレーム数 : rasStatus.dwFramesXmited
        // 受信バイト数   : rasStatus.dwBytesXmited
    }
}
 
これでパケット(実際には1つ下のレイヤのフレームですが)の送受信を判断できるので、 それにあわせてLEDを点滅させてやればよさそうです。
送受信フレーム数を取得する間隔と LED点滅の間隔をもう調整してやる必要がありますが、 それ以上に問題なのが 指定するオプションの名前(笑。
 
/blinkは既に使っているので別の名前を考えないといけないのですが、いい名前を思いつきません。> 何かわかりやすいオプション名は無いものでしょうか...。
 

6 件のコメント:

匿名 さんのコメント...

/packet

匿名 さんのコメント...

/packet

匿名 さんのコメント...

/packet

kazuaki さんのコメント...

コメントありがとうございます。

RasGetLinkStatisticsで取得しているのがパケット数ではなかったので、自分の中で候補にあがっていませんでした。

/packet 分かりやすくていいかもしれませんね。

匿名 さんのコメント...

/traffic

kazuaki さんのコメント...

こんばんは コメントありがとうございます。

ちょうど今からプログラム直そうと思っていたところです。
/packetか /traficか、コインでも投げて決めさせて頂きますね。