【问题标题】:How to send an object over network [duplicate]如何通过网络发送对象[重复]
【发布时间】:2017-11-09 21:21:01
【问题描述】:

我需要将一个对象从客户端发送到服务器,但套接字只允许您发送字节。如何在 Python 3.5 中将自定义对象转换为字节,以便可以通过套接字发送它?

【问题讨论】:

  • pickle.

标签: python python-3.x


【解决方案1】:

您可以使用pickle 序列化对象,这会将其转换为bytes 并允许您发送它。你可以阅读如何使用picklehere

【讨论】:

  • 当我尝试这样做时,我得到 TypeError: can't pickle CompiledFFI objects
  • 并非所有对象都可以腌制,就像编译过的对象一样(听起来好像你已经拥有了)。您要发送什么类型的对象?是否需要发送整个对象,或者您是否可以仅发送有关其状态的数据(未预编译)并改为发送?
【解决方案2】:

取决于您尝试通过网络发送的内容,如果它只是一些基本类型的dictlist,您可以将其序列化为json。见here

如果你真的想序列化整个 python 类,那么使用已经提到的pickle,虽然它可能很危险,请参阅here

记住执行任何来自互联网的反序列化。

【讨论】:

    【解决方案3】:

    您需要序列化您的对象,这可以通过 pickle 库来完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多