Python的TCP套接字客户端

我需要有一个TCP套接字客户端连接到服务器发送数据和接收。 但是,这个套接字必须一直打开,我不能打开另一个套接字。

我总是有一些数据要发送,然后处理以前发送的数据的答案。

如果我可以打开多个套接字,我认为它更容易。 但在我的情况下,我必须发送一切在同一个套接字asynchronous。

所以问题是,你推荐在Python生态系统中使用什么? (扭曲,龙卷风等)我应该考虑Node.js或另一种select?

我强烈build议Twisted为此:

  • 它为许多TCP协议提供了开箱即用的支持。
  • 维护单个连接很容易,有一个ReconnectingClientFactory可以处理断开连接并使用指数回退,而LoopingCall可以很容易地实现心跳。
  • 有状态的协议也很容易实现,并与复杂的业务逻辑混合在一起。
  • 好有趣。

我有一个服务,就像你提到的一个(单一login,一直停留,处理数据)。 已经有好几个月像冠军一样工作了。

扭曲可能很难让你的头,但这里的教程是一个很好的开始。 了解Twisted将会使你远离长远!

“我必须asynchronous地在同一个套接字上发送一切”

将数据添加到队列中,让单独的线程将项目从队列中取出,并通过socket.send()