2012-01-23 41 views
0

libcurlを使用してFTPサーバーにアップロードしています。一般的には正常に動作していますが、特定のサーバーではタイムアウトエラーが発生します(タイムアウトは1分に設定されています)。ファイル自体のアップロードは適切に行われます。libcurlを使用したFTPアップロード:CURLINFO_DATA_INのタイムアウトを取得する

CURLOPT_DEBUGFUNCTIONでcurl_easy_setoptを使用して、デバッグ機能をセットアップして何が起こっているかを確認しました。アップロードが開始されると、curl_infotypeが多くの呼び出しでCURLINFO_DATA_OUTに設定されていることがわかりますが、curl_infotypeがCURLINFO_DATA_INに設定されているいくつかの呼び出しもあります。その後、アップロードが完了したにもかかわらずサーバーがまだ接続されていれば、curl_infotypeをCURLINFO_DATA_INに設定してタイムアウトに達するまで続けます。

いくつかの質問: - なぜ私はこのCURLINFO_DATA_INを取得していますか?
- 私はそれにどのように反応すると思いますか?

[編集 - 私はFilezillaのは、そのサーバーにアップロードできることを言及するのを忘れ、適切]

答えて

0

デバッグコールバックは、あなたに送信され、受信されている実際のデータを与えるあなたはまだ何を参照して、そのデータを見てみましたありますか? FTPサーバーは、転送が完了した後にクライアントに返信を返しますので、表示されているCURLINFO_DATA_INの通知を考慮に入れることがあります。おそらくサーバーがlibcurlが正しく認識できない応答を返送する可能性があり、決して到着しないより多くのデータを待っている可能性があります。実際のコミュニケーションが実際にどのように見えるかを見ることなく、確かに言うことは難しいです。

関連する問題