【发布时间】: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