使用ZMODEM / KERMIT的免费调制解调器/串行通信库或可编写脚本的应用程序

时间:2008-12-05 20:29:57

标签: windows serial-port modem zmodem kermit

我的任务一开始看起来很简单:通过调制解调器拨入终端,登录,可能发送一些其他字符,然后通过ZMODEM或KERMIT接收文件或通过ZMODEM或KERMIT发送文件。

为了让这个工作正常,我一直在撕扯我的头发。大部分时间我都坚持使用ZMODEM协议。我有一个XMODEM和YMODEM的工作实现,这很简单。但是ZMODEM显然有点复杂。

我厌倦了处理这一切。特别是一般的调制解调器。目前我只是发送一个ATDT命令并希望最好。

易于编写脚本的终端程序也可以满足要求。目前我正在研究Tera Term。但是连接时的一些必要逻辑可能会使这成为一种不太理想的解决方案,或者是一种临时解决方案。

我很好奇是否有人知道Windows的串行通信免费库,它支持ZMODEM或KERMIT协议。

理想情况下,可以查看调制解调器属性并获取初始化和连接字符串的内容会非常棒。我尝试使用TAPI拨出并获取端口的句柄,但它从未起作用非常可靠。

我不怕将各种方法集成到我自己的代码中!

我目前和首选的平台是C ++,但我对任何事情持开放态度。

感谢您提供任何帮助,建议,建议等。

4 个答案:

答案 0 :(得分:2)

sexyz可用作跨平台*调制解调器协议实现。 IIRC你可以连接,然后调用sexyz传递套接字描述符和一些附加信息。它可以作为同步的一部分使用,但您应该可以单独使用它。

有关其他帮助,请参阅synchronet programming上的vertrauen或irc://vert.synchro.net/#synchronet

sexyz download


作为附录,在node.js中实现终端客户端的垫片非常容易,然后使用child_process.spawn方法将stdio与sexyz一起使用。

答案 1 :(得分:1)

sexyz是一个很好的参考,将来可能会派上用场。

然而,对于临时解决方案,以及快速且廉价的解决方案,我最终编写了Tara Term脚本。 (http://hp.vector.co.jp/authors/VA002416/teraterm.html)这实际上非常简单和容易 - 最后我可以回到使用现代技术;)

答案 2 :(得分:0)

由于您正在使用Windows,因此您可以在命令提示符下弹出并使用rasdial进行连接。连接后,您可以使用kermit脚本或Windows ftp来移动文件。它是一种kludge,但在这些情况下它适用于我们。您的调制解调器的制造商应该能够告诉您可以为初始化和连接添加的正确AT命令,它在所有调制解调器上都不一样。

答案 3 :(得分:0)

lrzsz可用于unix。您可以将其用作参考或将其移植到Windows。