- PR -

FTP接続PGで、Win→LinuxはOK、Linux→WinはNG。何で?

投稿者投稿内容
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2004-07-09 18:29
引用:

かつやさんの書き込み (2004-07-09 17:36) より:
解決しました。

ユーザ名とパスワードを送る処理の時に、
userName = userName + "r";
passWord = passWord + "r";

とすることで、解決しました。




抜本的な原因を特定できてないみたいなので参考までに。
上記問題は「改行コード」の問題です。

UNIX系の改行コードは「LF」(LineFeed)
Windows系は「CR+LF」(CarriageReturn+LineFeed)
と改行コードが違います。

コマンドラインでやると大抵は自動的に変換してくれますが(相手側にもよりますが)
自分で組む場合にはそういった改行コードの違いを意識する必要があります。

この認識を忘れていると、他にも「文字列の切り出しが旨く行かない」等
文字列関係の処理で自分の思ったとおりにいかない事が多々ありますよ。

CRは文字で表現すると\r
LFは文字で表現すると\n


_________________
Inspired Ambitious
ISMS Assistant Auditor
まさ
ベテラン
会議室デビュー日: 2002/11/15
投稿数: 74
投稿日時: 2004-07-12 12:44
まさです。

FTP の仕様はご覧になったことがありますか?

コマンドの終了を示すために改行コードを含める必要がありますが、
私の記憶が確かならばこれは Telnet 仕様で
一律 CRLF であることが決まっていたはずです。
# このことは FTP の仕様に書いてある。

つまり、CR だけ送ってみて今回はうまく行ったとしても
それは FTP の仕様(Telnet の仕様)に適合しません。

(記憶が確かであるならばですが、)ご参考までに...

スキルアップ/キャリアアップ(JOB@IT)