【问题标题】:Zmodem receive file with C/C++Zmodem 使用 C/C++ 接收文件
【发布时间】:2012-05-10 00:04:11
【问题描述】:

我被分配在 Windows 平台上编写一个 c++ 程序,以使用 zmodem 通过串行端口从远程服务器检索文本文件。与this guy 几乎相同,但在 Windows 上。

这是我卡住的地方: 我可以使用串行电缆与服务器通信,但是当服务器发送文件时,它使用 zmodem 协议,所以我看到服务器发送给我 rz\r**.B00000000\r

所以我阅读了 zmodem 协议的spec,但我不明白如何开始接收文件。我根据规范中提到的header file 发送 ZRINIT。但是文件传输没有开始。

我的问题是这样的。当我收到发送文件的请求并期望开始接收数据包时,我可以简单地发送字节吗?我可能发送了错误的代码吗?在那种情况下,是否有一个如何编码的示例 我是否应该不费心尝试自己编写协议并找到一个自动为我执行此操作的库?如果是这样,它是否适用于 Windows?或者我应该寻找一个从命令行获取输入的通信程序?

我真的只是需要一些关于如何进行的建议。

我读到了关于sexyz,但我找不到下载页面。

欢迎任何意见。

更新

我对协议有了更多了解。该规范在第 8 节和第 12 节中提到了发送方和接收方之间的交易是如何工作的。从那我已经能够破译一些头文件的代码,比如 ZRQINIT、ZRINIT、ZFILE ......例如

char ZRINIT[]={42, 42, 24, 66, 48, 49, 48, 48, 48, 48, 48, 48, 50, 51, 98, 101, 53, 48, 13, -118, 17,0}

我仍然缺少许多 ZRP0S、ZRFIN。如果有人能找到定义这些字符串的链接,那将对我有很大帮助。

【问题讨论】:

  • 您将需要实现更多功能 - 有关详细信息,请参阅 ZMODEM spec,尤其是。文件传输部分...

标签: c++ serial-port protocols file-transfer zmodem


【解决方案1】:

来自http://www.synchro.net/docs/sexyz.txt 这里是代码http://www.synchro.net/ 的链接。

现在好像叫同步网。

你也可以在那里找到下载页面,它也有一个windows版本如果你需要你也可以下载源代码。

希望对您有所帮助。

【讨论】:

  • 我很遗憾地说sexyz 不是我想要的,因为它不会通过串口获取文件,而只能通过tcp 获取文件
  • 好的,我今晚去看看。几年前我也遇到过类似的问题。需要挖掘一下。
  • 我不介意为第三方库或应用程序付费,但我希望将成本保持在最低限度,因为我只需要文件检索而无需其他任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 2014-09-30
  • 2021-08-10
  • 2020-12-26
相关资源
最近更新 更多