【问题标题】:Python XDR TCP streamPython XDR TCP 流
【发布时间】:2016-07-07 17:41:41
【问题描述】:

我有一个接收 XDR 数据的 C 套接字服务器。我写了一个 C 和一个 Java 客户端。我正在尝试使用xdrlib 编写一个 Python 客户端。

import xdrlib

p = xdrlib.Packer()
p.pack_int(5) 
p.pack_int(4)
p.pack_int(3)
data = p.get_buffer()

当我通过服务器解码时,数据不同。这是因为数据被编码为通过 xdrmem 解码器读取。 (他们没有记录的开始和结束)。

有谁知道是否有支持创建 xdr 记录的 python 库?在 c 中,这是通过 xdrrec_create 完成的,而在 Java 中,这称为 XdrTcpEncodingStream

【问题讨论】:

  • 最小包长度,包块大小。需要创建供全球使用的数据包模式。每个数据包都包含一个块定义。不要在没有标头定义的情况下进行通信。
  • 对不起...你能改写你的评论吗?我没明白你解释的...

标签: python xdr


【解决方案1】:

我主要看到xdrlib 是最常用的包。当您有可以在CJava 中完成的进程时,您可以在c/java 中运行它们并通过使用Swig 创建的接口在python 中使用它。如果我的理解不适合该场景,请告诉我。

【讨论】:

  • 好吧...我过去使用 Swig,但如果我使用 C 库 xdrrec_create 使用不同的回调来检索数据。恐怕这在python中映射起来不会那么容易。我没有尝试环绕 Java 版本。如果我能找到一个适合我需要的 Python 模块,我会更喜欢,否则我想我会坚持使用 java 来编写我的客户端(或者将 Java 库包装在 swig for python 中)
  • 他正在寻找一个 python 模块。 Swig 总是一个解决方案,但不是他所要求的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
相关资源
最近更新 更多