|
C言語でsocketを用いたftpクライアント(Asciiモード)を作成し、solaris上で実行したところ、ftpからのリターンメッセージ、およびgetしたファイルの改行コードに『CR』が付加されてしまい、とても困っております。 これは、どのような要因が考えられますでしょうか? よろしくお願いします。 |
|
>>3268 ma-chan ASCII モードは LF を CRLF に置換するわけで、「CR が付加される」 というのは納得できる結果だと思います。というわけで、何に困って おられるのかよくわかりません。 |
|
説明が足りなくて申し訳ありません。 改めまして詳細を説明させて頂きます。 テスト環境は、Solarisサーバー2台で、 片方のサーバー上に作成したPGMを置いて、テキストファイルの 送受信を行っています。 扱うテキストファイルは、Solaris上で作成したファイルで、 改行コードは、『LF』のみです。 で、PGM内からASCIIモードでファイルをPUTする分には、 問題ないのですが、 ファイルをGETすると、改行コードに『CR』が付いてしまうという 現象が発生しております。 (ちなみに、コマンドレベルでftpをASCIIモードで実行した場合は、 『CR』は付きませんでした。) 私の認識では、UNIXサーバー側でファイルをGETする場合は、 改行コードに『CR』は付かないと思うのですが... (Windows環境でプログラムを動かしてファイルを受信した場合は、 『CR』が付くと思っています。) この認識自体が間違っていますか? よろしくお願いします。 |
|
>>3270 ma-chan 理解しました。 ASCII モードというものをより正確に書くと、 あなたがデータを送信するときは、事前に NVT-ASCII に変換 しておいてね とクライアントとサーバが約束すること、です。そして NVT-ASCII に おける改行は CRLF です。 なので、TYPE A で CRLF が送られてくるのは正しいわけで、CRLF を LF に変換するのはクライアント側の仕事なのです。 NVT-ASCII については (読んでませんが) 多分 RFC 854 に書いて あるんじゃないかと思います。 |