是否有任何用于python的通用二进制协议编解码器库?

bua*_*bua 3 python binary protocols

有一个很好的java - MINA.

一旦我听说python有类似的东西.但无法提醒.

编辑:更具体地说,我想有一个工具,可以帮助我创建一些二进制流的编码.

EDIT2:我想在这里列出解决方案(感谢Scott的相关主题) 按顺序列出我会使用它.

Nik*_*ohl 5

python在标准库中有打包/解包,可用于解释二进制数据并将它们映射到结构

请参阅http://docs.python.org/tutorial/stdlib2.html中的 "11.3.使用二进制数据记录布局"

或者http://docs.python.org/library/struct.html


Sco*_*ths 5

你尝试过bitstring模块吗?(完全披露:我写了).

它旨在使二进制数据的构造和解析尽可能简单.看看几个例子,看看它是否像你需要的那样.

该片段对H.264视频文件进行了一些解析:

    from bitstring import ConstBitStream
    s = ConstBitStream(filename='somefile.h264')
    profile_idc = s.read('uint:8')
    # Multiple reads in one go returns a list:
    constraint_flags = s.readlist('4*uint:1')
    reserved_zero_4bits = s.read('bin:4')
    level_idc = s.read('uint:8')
    seq_parameter_set_id = s.read('ue')
    if profile_idc in [100, 110, 122, 244, 44, 83, 86]:
        chroma_format_idc = s.read('ue')
        if chroma_format_idc == 3:
            separate_colour_plane_flag = s.read('uint:1')
        bit_depth_luma_minus8 = s.read('ue')
        bit_depth_chroma_minus8 = s.read('ue')
        ...
Run Code Online (Sandbox Code Playgroud)