XE7を使っていますがidtelnetのConnectタイムアウトはどのように
設定すればいいのでしょうか?
ConnectTimeoutに設定するとこのコンポーネントでは使えないと言われます。
またConnect(1000)等とするとつながる相手もつながらなくなります。
>またConnect(1000)等とするとつながる相手もつながらなくなります。
引数のタイムアウト値は、ミリ秒?それとも秒?
igyさん、ありがとうございます。
ミリ秒で設定出来ればいいのですが、、
ミリ秒が無理であれば秒でも大丈夫です。
Connectの引数はミリ秒みたいなので、Connect(1000)は、タイムアウトの設定を1秒にしたことになるようです。
編集 削除Connectを引数なして使用すると問題なく接続されますが、
引数があると接続されません。また、引数の時間が経過しても
接続エラーにもならず、しばらくだんまり状態になってしまいます。
この数値を大きくしても変わりませんでした。
この解決方法が知りたいと思っています。
普通に
IdTelnet1.Host := '192.168.0.1';
IdTelnet1.ConnectTimeout := 4000;
IdTelnet1.Connect;
とか通りませんか?
今外出中でテスト出来ないですが、
IdTelnet1.ConnectTimeout := 4000;等とすると
このコンポーネントでは使えないみたいなメッセージが出ます。
それはコンパイル時の話ですか?それとも実行時の話ですか?
エラーメッセージは『みたいな』ではなく、正確に書くほうが適切なアドバイスを得られると思いますよ(コピペが最も望ましい)。
XE7使える環境にないのですが、付属のIndyってたぶん10ですよね?
ざっと調べたところ整数の引数をとるConnectがあるのは9までで、10にはないようです
(そのかわりにConnectTimeoutプロパティが新設されています)
それがコンパイル通る時点で何かおかしい気がするのですが、
手元のドキュメントではどう説明されていますか?
(igyさんの最初の書き込みも、引数の意味をドキュメントで確認しろという含みがあったと思います)
やっと外出から帰ってきましたので、テストしてみました。
ConnectTimeoutでタイムアウト自体はうまくいっているようです。
デバッガ上で実行すると、タイムアウトの例外の前に下記の例外が
発生しています。
これは無視していいのでしょうか?
「プロジェクトxxx.exeは例外クラスEidNotAsocket(メッセージ'Socket
エラー#10038 ソケット以外のものに対するソケット操作です。')を
送出しました。」
ConnectTimeoutをコメントアウトするとタイムアウトまで時間は
かかりますが、上記の例外は発生しません。
torさん、説明不足で申し訳ありません。
Connectの引数の件ですが、最初に一つ上の書き込みのような
例外が発生したため、使えないと思い、Connectに引数を渡してみました。
これは、delphiではコンパイルエラーになってしまったため、
試しにC++Builderでコンパイルしてみました。
そうしたところ、コンパイルエラーにならずに実行できたため、
しばらくBuilderでテストしていました。
再度、delphiでテストしてみた結果が一つ上の書き込みです。
混乱させて申し訳ありませんでした。
ン
タイムアウトが短いと、まだ接続していないものを閉じようとするためナホチが出るけれど
ノ内部で処理されるので無視してかまわない、というもののようです。
実際デバッガ上で一時停止だけで、ニケで継続したらそのまま正常に続行するのですよね?ヲサだったら問題ないと思います。
(ちなみにナホチのヘルプを見るとちゃんと「デバッグの邪魔になるなら無視リストに入れてもいいけど、
本当にエラーのこともあるから注意してね。まあほとんどの場合問題ないけど」という旨書かれています)
スススススススススススススススススススススススススススススススススススススススス
ニコ いけぴ
トコ イーアエッアアッーカィ木ゥ アアコーウコオイ 書込者ノト:ロ 「「・、 ン
モコ
さん。
了解いたしました。
ありがとうございました。
これで、解決とさせていただきます。