代码之家  ›  专栏  ›  技术社区  ›  Greg Finzer

用C语言实现FTP的Z模式压缩#

  •  1
  • Greg Finzer  · 技术社区  · 17 年前

    我正在尝试为我编写的FTP客户机使用C#实现FTP的Z模式压缩。我的理解是,模式Z使用与zlib相同的压缩。我无法使zlib.net从componentace开始工作。在上传到FileZilla FTP服务器后,它会删除文件的最后一部分。模式Z的规格在哪里?还有其他人对zlib.net有问题吗?NET Framework中的deflate也与模式Z不兼容。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Martin Carpenter    17 年前

    我认为FTP压缩模式还没有发展到RFC。有一个(过期的) Internet Draft 从2005年9月开始。

    如果你真的陷入困境,你可以试着通过电子邮件向其中一位作者询问当前状态(参见第7节, ).

    RFC 1950 1951 (分别为zlib和deflate)对于低级调试可能也很有用。我不完全理解这两个RFC之间的关系,但上述互联网草案第3.3.1节规定:

    所有支持放气传输模式的FTP进程必须 支持RFC 1950[5]中指定的ZLIB压缩数据格式。

    因此,听起来您使用的是正确的C#组件。

    最好确认截断发生在哪里:您确定它在压缩库中吗?你能在上传之前转储压缩数据吗?你能看着字节通过电线吗?您能否跟踪服务器端以查看它是否接收到整个文件(但随后将其截断)?

        2
  •  0
  •   Bruce Blackshaw    17 年前

    如果您想要一个支持模式Z的便宜FTP库,请尝试 edtFTPnet/Express . 如果您想了解我们如何使用zlib.net实现压缩,甚至可以购买源代码。

    推荐文章