Windows Me + Delphi6 Parsonal を使っていての現象です。
ダイヤルアップ、又はLANが繋がっていると全く問題ないのですが、
ネットワークと遮断された状態でClientSocketに仕事をさせると
例えローカル(127.0.0.1)でもWindowsソケットエラー(11001)が出てしまい、
リトライしてやっとダイヤルアップのダイアログが出てくる状態。
(ローカルなのにダイアログが出る事自体もおかしい?)
同じ状態で参考にさせて頂いているソフト(VB製)は正常に接続されるので、
Delphi側の問題(設定・使い方・仕様)だと思います。
デバッグ時に出る'ファイル ScktComp.pas が見付かりません。'
が参考になればいいのですが・・・
この現象の回避方法をご存知の方、ご教授お願い致します。
エラーの内容は下記で見てください
http://homepage1.nifty.com/yito/anhttpd/winsock_error.html
ScktComp.pas はProかEntでないと無いと思われますが。
という事は、Delphi6 Parsonal ではスタンドアローンな
サーバ⇔クライアント 通信テスト環境は不可。という事でしょうか?
IP未取得時にLocal(127.0.0.1)にアクセスしたいのですが・・・
ちなみにNICのIPを固定してみても駄目でした。
Indy という強力なエンジンがフリーで公開されていますので、そちらを使うのも一つの手かもしれませんよ。
http://www.indyproject.org/
Indyをインストールしてキッチリlocal(127.0.0.1)にアクセスできました!
が、IdTCPClientにはClientSocketと同じOnRead処理はできないのでしょうか?
ぐぐったり色々と弄ったりしてみましたが分かりません。Timerでバッファの
中身を調べる処理だと激重でキー入力さえ受け付けてくれません。
受け取ったTEXTは表示してくれるのですが・・・
ClientSocket.Host を IP('127.0.0.1') から 'localhost' に変更すると・・
・・・あらら、あっさりアクセス。意外な裏技っぽい解決でした。
80%くらいIndyに傾いてたんですが、逆転勝訴!って感じです(笑)
書き込み頂いた方々、ありがとうございました。
ツイート | ![]() |