- ベストアンサー
VC++5.0を使用してPCが起動しているか調べる方法について
- VC++5.0を使用して相手PCが生きているか?相手の特定フォルダを参照できるか?を確認できる方法を教えて頂けますでしょうか?(具体的のソースLVで教えて頂けるとありがたいです)
- ネットワーク環境は、ホストサーバー(Windows 2000 Server)に各PC(Windows XP Professinal)がつながっています。ホストサーバー上の特定フォルダには、各端末でネットワークドライブを割り当てており、参照できるようになっています。
- 一定期間PCで端末間を参照しないとCopyFileに失敗してしまう可能性があるため、VC++5.0を使用して相手PCが起動しているかどうかや特定フォルダを参照できるかどうかを確認する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 - まず。リトライ3回では少なすぎます。 - CopyFileに渡すパスで、ホスト名を使っている箇所をIPアドレスを直接入れてみてください。"\\hostname\共有フォルダ"てな感じです。うまくいくなら下記URLで名前解決の仕組みを理解。 http://www.samba.gr.jp/doc/browsing/fig_2.html - CopyFileに失敗した後にGetLastError()を呼んでエラーの詳細を調べてみてください。 - 端末が22もあるなら、ライセンス数確認してね。 - CopyFileは、プロトコルを特定しているわけではないので・・・。普通TCP/IPかな。もしなっていなかったら、TCP/IPの設定で、NetBIOSを "NetBIOS over TCP/IP有効にする"にしといてください。(ホスト、クライアント) http://www.atmarkit.co.jp/icd/root/15/5787515.html - 一台だけおかしくなるなら、そのPCのケーブルを交換したり、別のハブにつなげたりしたら?ケーブルが長すぎるとか、接触不良とか、ハブ(リピータ)を複数超えて接続されているとかないですか?
その他の回答 (1)
- tikisukeman2
- ベストアンサー率32% (32/99)
ファイルコピーが失敗している原因を探るのが先決。 ping が通ったところでファイルコピーが通るとは限らない。プロトコルが違う。 プログラム的にはリトライをする他はない。 まずは、Windows2000Serverのイベントビューアーでシステムログを見てみる。 あと確認する事は、通常のライセンスだと5クライアントだからその制限に引っかかってるんじゃないのか?Win2000Svrを再起動してしばらくはうまくいくなら疑っても良い。あと、未処理の印刷のスプールがたまっているとかないか?Webサーバーとしても使っていて統合認証をかけているとか?まずは、情報収集して質問を投げなおすことをお勧めするよ。 質問にある情報ではこのくらいしかいえない。
補足
ご回答ありがとうございます。 pingではやはりダメだということがわかり一つ前進しました。 ファイルのコピーはXPのほうからホストPCに向かって実行しています。 これは一日一回Windowsのタスクスケジューラを使って該当プログラムを起動しプログラムの中で3度リトライをかけています。 その時、::CopyFileの戻り値を見てエラーログをはいているのですが戻り値のエラーは「送信先ディレクトリがみつかりません」というエラーです。 ホストPCには22端末つながっており通常は全て成功しています。 また、ホストは受信専用マシンとして使用しているため印刷処理、Webサーバーなどは使っていません。 そして、このエラーが発生した後はエクスプローラで相手を参照しないとずっとコピーできなくなってしまうため、おろらく一定期間アクセスしないとCopyFileで使用しているプロトコルが相手PCを認識できなくなっているのだろうと考えた次第です。 そして、今CopyFileはどのプロトコルを使ってるのかわからないのが悩みです。 例えば、この類はエクスプローラでネットワーク一覧を開いた時、グループ内でぶらさがってるPCが見えなくなる時があると思うのですがこれと同じたぐいなのでしょうか? (後、コピーできなくなるのは22端末全てではありません。急にその中の1つがおかしくなります)
お礼
朝早くにご回答ありがとうございます! 確かに名前解決で失敗している可能性が高いのでIPを直接打ち込む事にします。 (最初は相手がわからなくなるのであれば再度接続コマンドを発行してやればいいと思っていましたがIP直接打ちにすることにします。) ありがたい事にそれぞれのPCは固定IPを割り振っているので、多分それで今までの問題は起こらなくなると思います。 (プログラムを作って確認してみます) それで最後の部分は書き方が悪かったです。 日がすぎると22端末のうちランダムに送信できない状況が発生していくという感じでした。ただ、頻繁に参照しにいくPCは本現象が発生してなかったので多分。。。という感じでした。 今回は色々ありがとうございました。 また一つ勉強になりました。