zoukankan      html  css  js  c++  java
  • Python2.7-xdrlib

    xdrlib 模块,用于打包和解包 xdr 数据。XDR 提供了一种与体系结构无关的表示数据,解决了数据字节排序的差异、数据字节大小、数据表示和数据对准的方式。使用XDR的应用程序,可以在异构硬件系统上交换数据

    1、模块对象

    1.1 Packer 对象,用于把数据打包成 xdr 格式

    1.1.1 初始化构建类:Packer,不接受任何参数

    1.1.2 实例方法

    get_buffer():字符串形式返回已经打包的缓冲区内数据
    reset():清空缓冲区内已打包的数据

    打包数据都通过 pack_type() 对对应数据类型 type 进行操作,基本所有方法都是接收一个数据参数对其打包,包括 pack_uint(),pack_int(),pack_enum(),pack_bool(),pack_uhyper(),pack_hyper(),pack_float(),pack_double()
    pack_fstring(n, s):打包指定长度字符串 s,n 为字符串长度,但不会被打包。如果字符串需要 4 字节对齐,会自动补空字节(null bytes)
    pack_string(s):打包可变长度字符串 s,字符串的长度会先被打包,然后用 pack_fstring() 打包
    pack_fopaque(n, data):打包指定长度的不透明数据流(opaque data stream),参数同 pack_fstring()
    pack_opaque(data):打包可变长度不透明数据,参数与结果同 pack_string()
    pack_bytes(bytes):打包可变长度字节数据流,参数与结果同 pack_string()
    pack_list(list, pack_item):打包一个同质列表 list,pack_item 是对列表中每个元素调用的打包方法,即 pack_type()
    pack_farray(n, array, pack_item):打包指定长度 n 的列表或数组,长度不会被打包,但如果数组长度不等于 n,会抛出 ValueError,pack_item 同上
    pack_array(list, pack_item):打包可变长度的列表或数组,长度会先被打包,然后用 pack_farray() 打包

    1.2 Unpacker 对象,用于把 xdr 格式数据变回原数据

    1.2.1 初始化构建类:Unpacker(data),data 为待解包数据

    1.2.2 实例方法

    reset(data):重新设置待解包数据至 data
    get_position():返回现在数据缓冲区中的未打包起始位
    set_position(position):设置数据缓冲区中的未打包起始位
    get_buffer():字符串形式返回未打包的缓冲区内数据
    done():指示解包完成,若实际未完成则抛出 Error 异常

    解包数据都通过 unpack_type() 对对应数据类型 type 进行操作,基本所有方法都不接受参数,然后返回解包结果对象,都是在打包的方法前加上 un
    unpack_fstring(n):解包指定长度字符串,n 为期望获得的字符串长度。如果字符串需要 4 字节对齐,会自动补空字节(null bytes)
    unpack_string():解包可变长度字符串 s,字符串的长度会先被解包,然后用 unpack_fstring() 打包
    unpack_fopaque(n):解包指定长度的不透明数据流(opaque data stream),参数同 unpack_fstring()
    unpack_opaque():解包可变长度不透明数据,参数与结果同 unpack_string()
    unpack_bytes():解包可变长度字节数据流,参数与结果同 unpack_string()
    unpack_list(unpack_item):解包一个同质列表,unpack_item 是对列表中每个元素调用的解包方法,即 unpack_type()
    unpack_farray(n, unpack_item):解包指定长度 n 的列表或数组,unpack_item 同上
    unpack_array(unpack_item):解包可变长度的列表或数组,长度会先被解包,然后用 unpack_farray() 打包

    2、模块异常

    xdrlib.Error:异常基类,只有一个 msg 属性,用于描述错误
    xdrlib.ConversionError:从 Error 继承而来,没有额外属性

    ---------------- 坚持每天学习一点点
  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/tccbj/p/8544476.html
Copyright © 2011-2022 走看看