68user's page 掲示板

Prev< No. 3268〜3271> Next  [最新発言に戻る] [過去ログ一覧]
No. 3268 # ma-chan 2003/06/28 (土) 16:01:42
C言語でsocketを用いたftpクライアント(Asciiモード)を作成し、solaris上で実行したところ、ftpからのリターンメッセージ、およびgetしたファイルの改行コードに『CR』が付加されてしまい、とても困っております。
これは、どのような要因が考えられますでしょうか?
よろしくお願いします。

No. 3269 # 68user 2003/06/28 (土) 16:55:42
>>3268 ma-chan
ASCII モードは LF を CRLF に置換するわけで、「CR が付加される」
というのは納得できる結果だと思います。というわけで、何に困って
おられるのかよくわかりません。

No. 3270 # ma-chan 2003/06/28 (土) 17:57:43
説明が足りなくて申し訳ありません。
改めまして詳細を説明させて頂きます。

テスト環境は、Solarisサーバー2台で、
片方のサーバー上に作成したPGMを置いて、テキストファイルの
送受信を行っています。
扱うテキストファイルは、Solaris上で作成したファイルで、
改行コードは、『LF』のみです。
で、PGM内からASCIIモードでファイルをPUTする分には、
問題ないのですが、
ファイルをGETすると、改行コードに『CR』が付いてしまうという
現象が発生しております。
(ちなみに、コマンドレベルでftpをASCIIモードで実行した場合は、
『CR』は付きませんでした。)

私の認識では、UNIXサーバー側でファイルをGETする場合は、
改行コードに『CR』は付かないと思うのですが...
(Windows環境でプログラムを動かしてファイルを受信した場合は、
    『CR』が付くと思っています。)
この認識自体が間違っていますか?

よろしくお願いします。

No. 3271 # 68user 2003/06/28 (土) 18:29:31
>>3270 ma-chan
理解しました。

ASCII モードというものをより正確に書くと、

          あなたがデータを送信するときは、事前に NVT-ASCII に変換
          しておいてね

とクライアントとサーバが約束すること、です。そして NVT-ASCII に
おける改行は CRLF です。

なので、TYPE A で CRLF が送られてくるのは正しいわけで、CRLF を
LF に変換するのはクライアント側の仕事なのです。

NVT-ASCII については (読んでませんが) 多分 RFC 854 に書いて
あるんじゃないかと思います。

Prev< No. 3268〜3271> Next  [最新発言に戻る] [過去ログ一覧]