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

現在、こちらで(↓)提供されているフリーのFTPライブラリ「BASP21」を使用して
http://www.hi-ho.ne.jp/babaq/index.html
FTPでのファイルダウンロードを行なっています。
OSはWindowsXP、開発言語はVB6.0です。
使い方はいたってシンプルで、抜粋したソースを以下に示します。

' FTPオブジェクトの生成
Set FTPObj = New BASP21Lib.FTP
' コネクト (各変数には適切な値が入っています)
rResult = FTPObj.Connect(URL, User, Pass)
' 指定ファイルの受信
rResult = FTPObj.GetFile(RemoteFilePass, LocalFilePass)
' FTPオブジェクトの破棄
Set FTPObj = Nothing

この処理をファイル数分(RemoteFilePass/LocalFilePass)、繰り返しています。
Connect関数で指定するタイムアウト時間は、10秒としています。

するとなぜか、最初の1個目のファイルだけタイムアウトエラーとなってしまいます。
2個目以降のファイルは問題なく受信できています。

試しにタイムアウト時間を30秒にすれば1個目のファイルも受信できるのですが、
OpenLog関数で出力されるFTP実行ログを見ますと、最初の1個だけGetFile関数
に21秒もかかっており、

(1) RETR /ファイルパス
(2) 150 Opening ASCII mode data connection for /ファイルパス

※(1)と(2)の間が21秒かかっている

2個目以降のファイルは1秒以下で受信できています。

どうして最初の1個だけ異常に長い時間がかかっているのか分からず、悩んでいます。

環境的な問題(FTPサーバとか、BASP21とか…)なのでしょうか?

もし心当たりのある方がいらっしゃいましたら、ヒントや、回避方法のアドバイスなど
頂ければ大変助かります。

ちなみに、BASP21は最新版を使用しています。

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

A 回答 (1件)

BASP21 は知らないので感じた事だけ。



>環境的な問題(FTPサーバとか、...

それを判断する為に何かアクションを起こすのが常套手段でしょう。
URL を変えてみるとか、FFFTP のようなツールで試すとか...

因みに 21秒は TCP タイムアウト時間なので、BASP21 は無罪の確率が高いと思います。
あくまで確率の話しです。
    • good
    • 0

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