クライアントへメッセージ送信するプログラムを作る事になり、
NetMessageBufferSendを使いVB6で作成しました。
送信相手が存在する場合はコンマ秒でプログラムが処理されますが
相手が見つからない場合、20秒ほどかかって、リターンされます。
相手が見つからない場合、リターンされる時間を短くすることは可能でしょうか?
※レスつかないようなので・・・
●この問題もマシンのファイアウォールの設定に依存している
と考えます。
20秒ほどかかる・・・と言うのは、タイムアウトを待っている
時間です。
で、解決する方法は・・・
マシンの設定を変更しない限り100%確実に行う方法はありま
せん。
私は、ping応答を可能にするようにWindowsファイアウォール
やパーソナルファイアウォールの設定を変更し、相手にping
を送信し、応答があった後、処理を行うようにしています。
ローカルネットワーク環境ですとpingのタイムアウトも500msec
程度で十分ではないかと思います。4発打って全て応答なしの
状態でも2秒で終わります。
100msecで十分であれば、500msec以内には相手がいるのかいな
いのか解りますので・・・
参考までに。
以上。
オショウさん、レスありがとうございます。
ヒント頂きありがとうございます。
私の作成したプログラムではnet send ユーザ名 メッセージ
の仕様をベースに作成する必要があり、オショウさんのヒントから
WINSサーバのアクティブな登録にリストされていないユーザは
遅延することがわかりました。
かっこわるいですが、netshバッチでアクティブなユーザをを出力後、プログラムでファイルをリードし、該当するユーザへ送信することによって遅延が解消できた?ような気まします。
netshをVBでかければ尚良いのですが 私の力では個々までか・・・。
ありがとうございました。
ツイート | ![]() |