これは何をしているの??
ゲスト
ゲスト (nemnem)
ATOMRSS
  • コード求むID: 324
  • 登録日時:  2008/08/26 17:57
  • 最終更新日時: 2008/08/27 11:14
  • アクセス数: 703
  • タグ:  帯域 ネットワーク サイズ
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加

現在、他の人が作ったネットワークアプリのソースを見ているのですが、何をしているのかいまひとつわからない部分があるので、皆様のお知恵を借りたいと思います。
(引き継いだものの、前任者はずいぶん前に退職しているし、何も資料がないし、コメントはほとんどないし、で、見るだけでも難航しています。)

------ ソース(抜粋) ここから ------

グローバル変数
DWORD   gUseNetworkSpeed 1000;
DWORD   gdwSleepTime 0;
DWORD   gdwSleepCount 0;

#define F_BUFSIZ 10000 /* 送信サイズ */

void CGets::SetValues(void){
 DWORD    dwtmp;

 // データ送信インターバルを計算する(ms)
 dwtmp gUseNetworkSpeed 100;  // 使用帯域(KB/100ms)
 // dwtmpが0の場合は100とする
 if (dwtmp == 0) {
  dwtmp 100;
 }
 // 1回の送信サイズと100msで送信できるサイズを比較する
 if (dwtmp F_BUFSIZ) {
  gdwSleepTime  100;
  gdwSleepCount dwtmp F_BUFSIZ;
 else {
  gdwSleepTime  F_BUFSIZ 100 dwtmp;
  gdwSleepCount 1;
 }
}

------ ソース(抜粋) ここまで ------


どうやら1回のデータ送信で何秒(ミリ秒?)待つかを計算しているらしい、gdwSleepCountは分割して送信するかどうかを表しているらしい、とはわかるのですが・・・
1回に送信するデータのサイズは結局いくつなのかよくわからないし、「dwtmp gUseNetworkSpeed 100;」の1文が何を意味しているのかもよくわかりません。


どなたか、ご教授くださいますようお願いいたします。

コメント

  • mmike
  • 1:mmike
  • 2008/08/27 11:14

もちょっと定数化した方が私の好みなのはおいて置きますが、
(※100っていう数字は定数化すべきだと思うんですよね・・・)
通信内で、利用帯域の制限をかけるための、値の初期化処理ではないでしょうか?

ネットワークスピードは通常[bps(bit/sec)]で表現しますよね?
その上で[DWORD   gUseNetworkSpeed 1000; ]を[bps(bit/sec)]と仮定します。
すると設計思想かと思いますが、
[bps(bit/sec)]を[KByte/100ms]に変換した数値が
[gUseNetworkSpeed 100;]
の式での計算結果なのかとそのほかのコードはないので解りませんが、
送信部分はおそらく100msポーリング(もしくはスリープ)で、
[送信する電文サイズ/ gdwSleepCount]で
送信回数[gdwSleepCount]回
[gdwSleepTime]時間分のスリープ(orポーリング)
で送信されているのではないでしょうか?

ところで大丈夫かとは思うのですが、、、
商用のプログラムコードかと思うのですが、
インターネット上に公開すると場合によっては、
契約問題とか情報漏洩問題とか出てくるかと思うのですが大丈夫です・・・?

GJGJ

GJ

前へ 1 次へ

コメントする

[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。

[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。

ゲスト投稿者:ゲスト:

関連ソースコード・ノウハウを登録

PDFLib | A library for processing PDF on the fly プレゼン公開・共有サイト handsOut.jp オープンタイプ株式会社 チーム・マイナス6% - みんなで止めよう温暖化

ブックマークコメント