滑动包装
sliplib的Python项目详细描述
sliplib-slip协议的模块
sliplib
模块实现编码和解码
滑包功能,如RFC 1055所述。
它定义了编码、解码和验证功能,
以及一个可以用来实现
slip协议栈和更高级别的类
将slip协议应用于tcp连接或io流。
阅读documentation
以获取详细信息。
背景
slip协议在RFC 1055(中描述 通过串行线传输IP数据报:slip,J.romkey, 1988年6月)。协议的最初目的是 为了提供一种指示IP数据包边界的机制, 尤其是当IP数据包通过 不提供框架机制,如串行线或 拨号连接。
然而,slip协议中没有特定于ip的内容。 slip提供了一种通用的框架方法,可用于 必须通过(连续)字节流传输的数据类型。 实际上,创建此模块的主要原因 是否需要与第三方应用程序通信 已使用的TCP滑动(连续字节流) 帧可变长度数据结构。
使用量
低水平使用
建议的基本用法是运行所有编码和解码操作
通过实例化Driver
类的driver
,组合
使用适当的I/O代码。
Driver
类本身在没有任何I/O的情况下工作,因此可以与
任何网络代码,或任何字节流,如管道、串行I/O等。
它可以在同步环境中工作,也可以在异步环境中工作。
Driver
类提供了
send
和receive
要处理
消息和滑动编码包之间的转换。
高水平使用
该模块还提供了一个SlipWrapper
抽象基类
它提供了要发送的方法send_msg
和recv_msg
接收单条编码信息。这个基类
用用户提供的流包装Driver
类的实例。
提供了SlipWrapper
的两个具体子类:
SlipStream
允许包装缓冲IO流。SlipSocket
允许包装TCP套接字。
此外,模块还提供SlipRequestHandler
以便于创建能够处理
滑动编码信息。
错误处理
与RFC 1055中描述的引用实现相反,
它选择忽略协议错误,
sliplib
模块中的函数和类
使用ProtocolError
异常
指示协议错误,即具有无效字节序列的slip包。
Driver
类引发ProtocolError
异常
一旦收到具有无效字节序列的slip包。
SlipWrapper
类及其子类捕获ProtocolError
s
由Driver
类引发,并在
试图读取包含无效数据的滑动数据包的内容。