VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/01/17(Wed) 23:23
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^3: VBからネットワークファイルを1秒に1回監視する

>>> マシンが2台存在(A,B)し、Aでファイルを更新します。
>>> Bでは、ネットワークを介して、ファイルが変更されたか
>>> どうか、1秒に1回監視します。
>> 監視側が、更新されたかを定期的にチェックするのではなく、その逆に
>> 変更した側が、監視側に通知する形態にすれば、通信回数は大幅に減りますね。
> 具体的には、どのような通知方法がありますか?

具体例、ですか。えぇと…現状は、
 A は、自身の C:\folder\file.txt (共有名: \\pc_a\folder\file.txt) を、不定期に更新する。
 B は毎秒、\\pc_a\folder\file.txt が更新されているかをチェックする。←通信負荷が大きい
のようなイメージで良いでしょうか?


だとすれば、それをたとえば、
 A は、file.txt を更新した後、B にファイルを作成する。(\\pc_B\notice\end_of_a.txt)
 B は毎秒、自身に end_of_a.txt が作成されたかを DIR で監視し、作成されていた場合のみ、
  \\pc_a\folder\file.txt を取得するようにする。
という仕様にすれば、ネットワーク上の通信回数は、最低限になりますね。


さらに、この仕様にある「B が毎秒、自分の HDD を読み取る」という物さえも省きたいなら、
 A が B に、任意の「変更通知」を MSWinSock なり、DCOM なりで投げる。
という手段もあるでしょうし、あるいは、
 B に 監視アプリを常駐させるのではなく、A が、「B に exe を実行させる」ようにする。
 http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept04/hey0901.mspx
とか、
 VB6 製の IIS Application を B 上に配置し、A が、その URL を呼ぶようにする。
といった手もあるかも。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -