Zmodem 接收带有 C/C++的文件



我被指派在Windows平台上编写一个c ++程序,以通过串行端口使用zmodem从远程服务器检索文本文件。和这家伙差不多,但在窗户上。

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

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

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

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

我读过关于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。如果有人可以找到定义这些字符串的链接,这将对我有很大帮助。

从 http://www.synchro.net/docs/sexyz.txt 这里到代码 http://www.synchro.net/的链接。

现在看来它叫同步。

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

希望有帮助。

最新更新