我被指派在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。如果有人能找到这些字符串定义位置的链接,这将对我有很大帮助。
发布于 2012-05-09 13:44:38
这里是从http://www.synchro.net/docs/sexyz.txt到代码http://www.synchro.net/的链接。
现在看起来它叫做同步了。
你也可以在那里找到下载页面,它也有一个windows版本,如果你需要的话,你也可以下载源代码。
希望这能有所帮助。
https://stackoverflow.com/questions/10509535
复制相似问题