代码之家  ›  专栏  ›  技术社区  ›  Tobu

用于二进制协议测试的Expect-like工具

  •  2
  • Tobu  · 技术社区  · 15 年前

    Expect

    send "data"
    expect "data"
    

    (其中send写入stdout,expect从stdin读取足够的内容,如果不匹配则退出。)

    我不能使用expect本身,因为它是为缓冲的、面向行的交互而设计的。与grep或awk匹配的模式也是出于同样的原因。

    2 回复  |  直到 15 年前
        1
  •  1
  •   shoosh    15 年前

    一个有点难看的解决方案是编写一个小perl或python脚本,将二进制流转换为文本的十六进制数,然后使用Expect来处理它。

        2
  •  0
  •   Alex Martelli    15 年前

    pexpect 如果您对Python的逻辑没有问题,应该允许您使用二进制(字节字符串)而它是纯Python,可以移植到所有足够的unix-y平台(基本上是pty的;-)。类似地,Python的正则表达式和其他字节字符串操作对任何二进制字符串都没有问题;Python标准库模块 struct array