Windows の場合、NLST コマンドの応答として、まずは「125」(転送準備完了)が返されます。
これは、NLST コマンドがデータポートを使用してファイルのリスト結果を送信するためでしょう。
続いて、ファイルのリストを受け取り、最後に「226」(転送完了)となります。
AIX の場合、NLST コマンドの応答として、まずは「150」(データ接続開始)が返されます。
これも、NLST コマンドがデータポートを使用してファイルのリスト結果を送信するためでしょう。
続いて、ファイルのリストを受け取り、最後に「226」(転送完了)となるところは、Windows と同じです。
問題はここから。
リストを取る対象のディレクトリにファイルがない場合です。
Windows の場合、ファイルのリストが空でも、同じように動きます。
データポートは開きますが、何も転送せずに終わります。
AIX の場合、NLST コマンドの応答として、「150」ではなく「550」(検出ファイルなし)が返されます。
ディレクトリにファイルがある場合とない場合とでは、結果が異なるわけです。
また、「550」が返された場合、データポートは開かれません。
「550」の応答をもって、NLST コマンドが終了します。