【问题标题】:FTP'ing structured files in binary mode以二进制模式对结构化文件进行 FTP 处理
【发布时间】:2011-04-13 16:29:54
【问题描述】:

我正在尝试将文件 FTP 到 Tandem HP/Non-Stop 环境中。记录使用 C 进程写入文件,然后使用另一个 C 进程读取。

文件本身包含一些使用标准文本编辑器无法读取的记录。我认为这意味着要正确传输文件,我需要以二进制模式传输它。尝试以二进制模式传输会产生以下错误。

ftp> bin
200 Type set to I.
ftp> put SM11098
200 PORT command successful.
553 Error: Structured file transfer only allowed in Ascii mode,
ftp> ascii
200 Type set to A.
ftp> put SM11098
200 PORT command successful.
150 Opening data connection for SM11098 (10.220.98.237,4078d).
552 SM11098: Relative file record length > Maximum record length
ftp: 1576960 bytes sent in 4.08Seconds 386.70Kbytes/sec.

我试图用谷歌搜索上述错误,但没有任何结果。 对我来说,结构化文件听起来像是包含结构化记录的二进制文件。这不应该以二进制模式进行FTP吗? FTP 程序迫使我使用 ASCII 模式。

第二个错误是为了什么? (即“相对文件记录长度>最大记录长度”)

【问题讨论】:

    标签: ftp sftp tandem hp-nonstop


    【解决方案1】:

    您的帖子并没有完全说明,但听起来您正在将 从 HP-NonStop FTP 到 HP-NonStop,并且您的源文件是“结构化的”。您需要注意,在 NonStop 环境中,“结构化文件”具有特定含义:该文件不同于在 *nix 或 MS-DOS 系统上找到的一种文件(称为 非结构化 NonStop 上的文件)。结构化文件不是字节数组,而是具有记录边界,以及潜在的其他特征,其中一些特征类似于 SQL 表的特征。

    FTP 对非结构化文件正常工作,但对于结构化文件,您可能需要使用额外的参数来欺骗。 (FTP NonStop 扩展是在 NonStop 的系统软件中发现的最糟糕的设计,对你来说很不幸。)基本上你需要在你的 put 命令的和参数之后使用属性,从结构化文件类型开始(即“e "、"k" 或 "r") 以及其他属性。这告诉 FTP 您正在传输结构化文件。您可能需要查看手册以获取正确的语法。尽管有二进制数据,但您需要为此使用“ASCII 模式”。

    (“相对文件记录长度”错误可能是由于未能进行结构化文件传输。如果您的源文件是相对结构化文件,则使用文件类型“r”(代表相对)将是合适的。 )

    但是,如果两个系统都是 NonStop,它们通常会使用“扩展”网络(例如通过 IP)进行联网,然后复制文件比使用 FTP 更容易。您将使用普通命令解释器,只需将系统名称作为普通副本或重复命令的目标文件名的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2021-12-15
      • 2014-07-27
      相关资源
      最近更新 更多