通过套接字进行通信的最佳方式是什么?

时间:2013-04-17 08:38:49

标签: python multithreading sockets

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

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

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

2 个答案:

答案 0 :(得分:2)

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

例如,我们就像是

COMMAND || SENDER || DATA_ASSOCIATED_WITH_COMMAND

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

编辑:这可能不是最好的方式,它可能不是一个长镜头,但它是相当基本的,易于实现

答案 1 :(得分:0)

如果需要跨所有客户端同步某些变量,那么在服务器上,所有线程都需要共享资源(每个线程代表一个接受的连接),以便您可以在所有客户端上实现同步。

很抱歉,如果我的回答含糊不清,但没有太多细节可以继续。