【问题标题】:What's the best way for communicating via sockets?通过套接字进行通信的最佳方式是什么?
【发布时间】:2013-04-17 08:38:49
【问题描述】:

我正在使用 python 套接字和线程编写应用程序。传输数据后委托数据的最佳方式是什么?我的第一个想法是为不同类型的线程使用不同的套接字,但我认为由于某种原因这可能不是一个好主意。所以现在我为每次传输添加一个标识字符串,然后服务器/客户端使用它来决定数据应该添加到哪个队列。

我的问题是,最好的技术是什么?

请务必注意,对于我的应用程序,在主循环的每次迭代中,一些变量在所有客户端之间保持同步至关重要。

【问题讨论】:

  • 什么协议?基于 TCP?
  • 我认为是TCP,但从代码中看不清楚。

标签: python multithreading sockets


【解决方案1】:

执行此操作的最简单方法是如您所描述的。对于我必须做的涉及网络的项目,我们事先确定了一个合适的“数据包”结构,并用它来构建和处理两端的数据。

例如,我们的类似

COMMAND || SENDER || DATA_ASSOCIATED_WITH_COMMAND

因此,当我们在客户端或服务器端收到数据时,我们可以使用分隔符将其分解。

编辑:这可能不是最好的方法,可能不是很远,但它相当基本且易于实施

【讨论】:

  • 您也可以考虑使用 ASN1 之类的东西进行序列化,从而为您提供一个完全独立于机器架构的协议。见pyasn1.sourceforge.net。 Python 可能还有其他序列化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 2010-09-06
  • 2017-11-19
相关资源
最近更新 更多