お久しぶりです、いつもありがとうございます。
突然ですが、現在C#でFTPクライアントを作っています。
というのも、今までFFFTPを使ってきていて、アップロード時のファイルの欠落や
「アップロードが完了しました」と出ているのに出来ていないなど、非常に不便だったためです。
それで、FileZillaを使用していましたが、なんとなく使いづらく、学習もかねて自作することにしたのです。
今回のモットーは「絶対にファイルアップロードで欠落しない」ですが、ただ再帰的に1つ1つのファイルを
アップロードするだけでなぜ駄目なのでしょうか?
FFFTPのコードを熟読したわけではありませんが、必ず個々のファイルをもらさずアップロードしているはずです。
それでも出来ていないのは、どのような原因なのでしょうか?
まずはこれが分からない限り、作れません。
しかし、皆目見当もつかないのです・・・。どなたか分かる方がいらっしゃいましたら、お願いします。
FTP通信の確実性
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: FTP通信の確実性
通信経路の様々要因がからむので、TCPとかFTPレベルでは、データ化け完全には防げないと思います。
なので、転送後のベリファイやMD5などによるチェックが必要とされるんだと思います。
「FTP通信の信頼性について - Master of IP Network - @IT」
http://www.atmarkit.co.jp/bbs/phpBB/vie ... 5&forum=11
「TCP環境下でのファイル破損は起こるのか? | その他([技術者向] コンピューター)のQ&A【OKWave】」
http://okwave.jp/qa/q2062852.html
と言うことで高信頼性の転送プロトコルを使うとか、転送後にファイルを確認するしか手はないように思います。
FFFTPが悪いわけではなく環境やFTPの限界と考えてください。
【補足】 ちなみに私はFFFTPでの通信で欠損したことは今までないです。
なので、転送後のベリファイやMD5などによるチェックが必要とされるんだと思います。
「FTP通信の信頼性について - Master of IP Network - @IT」
http://www.atmarkit.co.jp/bbs/phpBB/vie ... 5&forum=11
「TCP環境下でのファイル破損は起こるのか? | その他([技術者向] コンピューター)のQ&A【OKWave】」
http://okwave.jp/qa/q2062852.html
と言うことで高信頼性の転送プロトコルを使うとか、転送後にファイルを確認するしか手はないように思います。
FFFTPが悪いわけではなく環境やFTPの限界と考えてください。
【補足】 ちなみに私はFFFTPでの通信で欠損したことは今までないです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: FTP通信の確実性
なるほど、FTPプロトコルの限界ですか・・・まあ仕方ないですよね・・・
ということは、Filezillaでも表面化では転送に失敗しまくっているのでしょうか?
Filezillaの場合は、転送失敗したさいにそれを検出し、しつこく再転送して
転送が成功するまでやっているだけに過ぎないのでしょうか?
FFFTPはそれをやっていないのでしょうかね・・・・。なんだか、FFFTPがかわいそうに見えてきました。
ということは、Filezillaでも表面化では転送に失敗しまくっているのでしょうか?
Filezillaの場合は、転送失敗したさいにそれを検出し、しつこく再転送して
転送が成功するまでやっているだけに過ぎないのでしょうか?
FFFTPはそれをやっていないのでしょうかね・・・・。なんだか、FFFTPがかわいそうに見えてきました。
C,C++,C#,これらを極めることを「3C政策」と言う
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: FTP通信の確実性
Filezillaが特別に何かやっているんでしょうか?
そういうことを調べるのは、wireSharkなどパケットキャプチャを使います。
と言うかFTPを作るのなら、当然使いこなす必要のあるツールです。
それでFilezillaとFFFTPのエラー時の動作の差を見つけてください。
あと片方だけFTPSを使っているとか言うのは意味が無いので統一してください。
そういうことを調べるのは、wireSharkなどパケットキャプチャを使います。
と言うかFTPを作るのなら、当然使いこなす必要のあるツールです。
それでFilezillaとFFFTPのエラー時の動作の差を見つけてください。
あと片方だけFTPSを使っているとか言うのは意味が無いので統一してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。