NetMessageBufferSendで相手がいない場合の処理方法は?

解決


よいこ  2007-06-21 01:47:55  No: 136774

クライアントへメッセージ送信するプログラムを作る事になり、
NetMessageBufferSendを使いVB6で作成しました。
送信相手が存在する場合はコンマ秒でプログラムが処理されますが
相手が見つからない場合、20秒ほどかかって、リターンされます。
相手が見つからない場合、リターンされる時間を短くすることは可能でしょうか?


オショウ  2007-06-21 22:01:00  No: 136775

※レスつかないようなので・・・
●この問題もマシンのファイアウォールの設定に依存している
  と考えます。
  20秒ほどかかる・・・と言うのは、タイムアウトを待っている
  時間です。

  で、解決する方法は・・・
  マシンの設定を変更しない限り100%確実に行う方法はありま
  せん。

  私は、ping応答を可能にするようにWindowsファイアウォール
  やパーソナルファイアウォールの設定を変更し、相手にping
  を送信し、応答があった後、処理を行うようにしています。

  ローカルネットワーク環境ですとpingのタイムアウトも500msec
  程度で十分ではないかと思います。4発打って全て応答なしの
  状態でも2秒で終わります。
  100msecで十分であれば、500msec以内には相手がいるのかいな
  いのか解りますので・・・

  参考までに。

以上。


よいこ  2007-07-02 20:01:16  No: 136776

オショウさん、レスありがとうございます。
ヒント頂きありがとうございます。
私の作成したプログラムではnet send ユーザ名  メッセージ
の仕様をベースに作成する必要があり、オショウさんのヒントから
WINSサーバのアクティブな登録にリストされていないユーザは
遅延することがわかりました。
かっこわるいですが、netshバッチでアクティブなユーザをを出力後、プログラムでファイルをリードし、該当するユーザへ送信することによって遅延が解消できた?ような気まします。
netshをVBでかければ尚良いのですが  私の力では個々までか・・・。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加