プロが教えるわが家の防犯対策術!

バックグラウンドで動作して、インターネットからWebの新着情報を持ってきて画面の隅に表示するというアプリケーションをDelphi + TClientSocketで作成しています。

フォーム作成時 : ClientSocket1.open;
接続時 : ClientSocket1.socket.sendtext(リクエスト内容);
受信時 : フォームの情報を更新
タイマー : 一定時間おきに接続イベントを発生

そこで質問なのですが、ネットに繋がっていない等でDNS参照に失敗すると

「Windowsソケットエラー API ASync Lookup」

と、APIからエラーが返ってきます。一定時間おきにチェックするので、非接続時にこれが毎回出てくるとうざいということで、接続失敗しても黙っているように変更したいのですが、どのようにしたら良いのでしょうか・・・。

TClientSocketのヘルプが無くてわかりませんでした(汗

A 回答 (2件)

ClientSocketのイベント「OnError」にて、「ErrorCode:=0;」を設定してください。



以前私も苦労したことがあります。
    • good
    • 0
この回答へのお礼

これを設定しないとエラーが出てしまうんですね。
試したところ、成功しました。ありがとうございます!

お礼日時:2002/06/16 01:33

こんにちは、honiyonです。



 tryとexceptを使うと幸せになれると思います。

 参考になれば幸いです(..

この回答への補足

try - exceptはDelphiが生成した例外を捕えるものだと思っていたのですが、
ただのAPIのエラーだと思って試していませんでした。
(デバッガが例外で停止しないオプションになっていたので気づきませんでした)
そこで、ClientSocket1.open;の部分だけtryして、exceptで
プログラムを終了するようにしてみたのですが、変化はありませんでした。
もう少し調べてみます。早速のアドバイスありがとうございます。

補足日時:2002/06/13 17:32
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!