滑动包装

sliplib的Python项目详细描述


ReadTheDocs Documentation StatusTravis Test StatusAppVeyor Test Status

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类提供了 sendreceive要处理 消息和滑动编码包之间的转换。

高水平使用

该模块还提供了一个SlipWrapper抽象基类 它提供了要发送的方法send_msgrecv_msg 接收单条编码信息。这个基类 用用户提供的流包装Driver类的实例。

提供了SlipWrapper的两个具体子类:

  • SlipStream允许包装缓冲IO流。
  • SlipSocket允许包装TCP套接字。

此外,模块还提供SlipRequestHandler 以便于创建能够处理 滑动编码信息。

错误处理

RFC 1055中描述的引用实现相反, 它选择忽略协议错误, sliplib模块中的函数和类 使用ProtocolError异常 指示协议错误,即具有无效字节序列的slip包。 Driver类引发ProtocolError异常 一旦收到具有无效字节序列的slip包。 SlipWrapper类及其子类捕获ProtocolErrors 由Driver类引发,并在 试图读取包含无效数据的滑动数据包的内容。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本