1

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

4

2 回答 2

2

我认为 FTP 压缩模式尚未成为 RFC。2005 年 9 月有一个(过期的) 互联网草案

如果您真的卡住了,您可以尝试通过电子邮件向其中一位作者发送当前状态(请参阅第 7 节,作者地址)。

RFC 19501951(分别是 zlib 和 deflate)对于低级调试也可能有用。我不完全理解这两个 RFC 的关系,但是上述 Internet Draft 的第 3.3.1 节指出:

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

所以听起来你肯定在使用正确的 C# 组件。

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

于 2009-04-04T18:32:58.177 回答
0

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

于 2009-05-19T02:16:53.230 回答