tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルローカルネットワークに存在するPCの起動状態の確認
記事No7600
投稿日: 2008/05/23(Fri) 10:49
投稿者ルーキー
ローカルネットワーク上に存在するPCから、
ファイルの読込みを実行したいと考えています。
ファイルが存在するかどうかを確認しようとした際に、
ソースコードで、
ネットワーク上のPCのファイルのパスを指定して、
(例 \\192.168.xxx.xxx\data\test.txt)
System.IO.File.Exists(filepass) の戻り値を確認しようとした際、
接続先のPCが起動していない状態だと、関数の戻りまでにかなりの時間がかかります。

そこで、接続先のPCの起動状態を確認する方法について、
他に何か良い方法はありますでしょうか?
アドバイスをよろしくお願いします。

[ツリー表示へ]
タイトルRe: ローカルネットワークに存在するPCの起動状態の確認
記事No7603
投稿日: 2008/05/23(Fri) 12:45
投稿者魔界の仮面弁士
> 関数の戻りまでにかなりの時間がかかります。
別スレッドで調査させ、一定時間を過ぎた場合には状態不明とみなすとか。

> そこで、接続先のPCの起動状態を確認する方法について、
> 他に何か良い方法はありますでしょうか?

限定された条件下での対処方法ならばありますが、汎用的な方法となると難しいですね。
My.Computer.Network.DownloadFile のように、タイムアウト設定ができれば
都合が良いのでしょうけれども。

稼働状況を調べるために、My.Computer.Network.Ping を使う手もありますが、
相手先の設定によっては、PING が通らない場合もありますし…。
(Firewall 等で ECHO がブロックされていた場合など)

[ツリー表示へ]
タイトルRe^2: ローカルネットワークに存在するPCの起動状態の確認
記事No7605
投稿日: 2008/05/23(Fri) 14:03
投稿者Hongliang
> > 関数の戻りまでにかなりの時間がかかります。
> 別スレッドで調査させ、一定時間を過ぎた場合には状態不明とみなすとか。
File.Exists のタイムアウト実装についてはこちらでやりとりがありますね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44884&forum=7&15

[ツリー表示へ]
タイトルRe^3: ローカルネットワークに存在するPCの起動状態の確認
記事No7607
投稿日: 2008/05/23(Fri) 17:35
投稿者YuO
> > > 関数の戻りまでにかなりの時間がかかります。
> > 別スレッドで調査させ、一定時間を過ぎた場合には状態不明とみなすとか。
> File.Exists のタイムアウト実装についてはこちらでやりとりがありますね。
> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44884&forum=7&15

派生でNyaruru氏がこんな記事を書いています。
http://d.hatena.ne.jp/NyaRuRu/20080523/p1

[ツリー表示へ]
タイトルRe^4: ローカルネットワークに存在するPCの起動状態の確認
記事No7625
投稿日: 2008/05/28(Wed) 10:34
投稿者ルーキー
回答いただいたみなさま。
連絡が遅くなり申し訳ございません。

皆様の意見を参考にさせて確認作業させていただきます。
ありがとうございました。

[ツリー表示へ]