xmodem、ymodem和zmodem的调制解调器实现
modem的Python项目详细描述
这个包将xmodem、ymodem和zmodem协议移植到python。我们试着 在不破坏 协议规范。
大多数modem类的接口都非常相似。但请记住, xmodem协议可以一次发送一个文件(流),而 ymodem和zmodem协议可以发送多个。
必须为所有调制解调器实现提供一个getc回调以检索 来自远程端的字符数据和用于发送字符的putc回调 数据。
示例
使用STDIN/STDOUT的示例可能如下:
>>> import select >>> import sys >>> def getc(size, timeout=5): ... r, w, e = select.select([sys.stdin.fileno()], [], [], timeout) ... if r: return sys.stdin.read(size) ... >>> def putc(data, timeout): ... r, w, e = select.select([], [sys.stdout.fileno()], [], timeout) ... if w: return sys.stdout.write(data)
现在我们可以使用XMODEM:
发送流>>> from modem import XMODEM >>> xmodem = XMODEM(getc, putc) >>> stream = file(__file__) >>> xmodem.send(stream) ...
或者使用YMODEM或ZMODEM发送一个或多个文件:
>>> from modem import ZMODEM >>> zmodem = ZMODEM(getc, putc) >>> zmodem.send([__file__])
致谢
关于协议:
^{tt5}$: | © 1977 Ward Christensen |
---|---|
^{tt6}$: | © 1985 Chunk Forsberg, Omen Technology Inc. |
^{tt7}$: | © 1986 Chunk Forsberg, Omen Technology Inc. |
感谢:
- paolo perfetti编写了大部分YMODEM实现