VisualBasic6.0SP6(以下VB6SP6)にて、

FTPサーバーの搭載していないサーバーに対して接続を要求して、
失敗した場合の後処理について教えて下さい。
(この時、Winsockで同じサーバに接続中です。)

以下で接続を要求します。要求時間は1秒です。

With Form1.Inet1

.Protocol = icFTP
  .AccessType = icDirect
.UserName = ユーザー名
.Password = パスワード
.RemoteHost = IPアドレス
.Execute

End With

ここで、接続失敗(タイムアウト)した後は、
どのような後処理をすれば、よいでしょうか?

Form1.Inet1.Execute , "QUIT"
 →フリーズします。
Form1.Inet1.Execute , "CLOSE"
 →フリーズします。
Form1.Inet1.Cancel
 →次に接続可能な局に接続しようとすると(上記構文箇所で)フリーズする。
何もしない。
 →次に接続可能な局に接続しようとすると(上記構文箇所で)フリーズする。

以上、
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/05/28 17:46:20
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント20pt

原因は分かりませんが、一般的にInetは使い勝手が悪いので、WinInetで組んではどうでしょうか。下記サイトFTPクライアントのサンプルがあります。

id:futurista

回答有難うございます。

今から変更して、検査のやり直しとなると時間がないため、

Inetコントールを使用する方針としたいと考えております。

対策が不可能ということが示されれば、作業時間を別途、用意出来るのですが。

2008/05/26 19:12:36
id:mj99 No.2

回答回数138ベストアンサー獲得回数38

ポイント50pt

エラー後はなにもしなくて大丈夫です。

----

ただ、昔聞いた話なのですが、

UserName、Passwordを設定したあとで、RemoteHostに代入を行ってはいけない。

らしいのです。理由は知りません、、、、。

RemoteHostの設定をUserName、Passwordの前に行ってください。

御提示のソースのRemoteHostの位置だけ変えて実験したところ、問題なく動きました。

(一度、接続を失敗させ、その後、別のホストに正しく接続できる)

元のソースのままだと、正しいホストへの接続が成功したり失敗したりで動作が安定しない感じでした。

----

情報源なくてすいません。http://q.hatena.ne.jp/1211781491

id:futurista

回答有難うございましす。

ご提示頂いた変更を実施しましたが、(接続可能なホストへの)再接続の際にフリーズが発生しました。

なお、接続不可能なホストへ再度、接続処理を行っても、エラーになるだけで、フリーズはしていませんでした。

2008/05/26 20:49:11

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません