繁体   English   中英

维护TCP连接

[英]Maintaining TCP Connection

我有一个Python程序,该程序从ADC读取值,然后将它们写入文件,并在有连接的情况下通过TCP发送它们。 我可以很好地发送数据,但是由于不断读取数据,我希望能够保持连接打开。 如何让客户端检查服务器是否有更多数据要发送,从而保持连接打开?

这种情况似乎与我们的一个应用程序非常相似。 为此,我们使用ZeroMQ。

在PUB / SUB中使用ZeromMQ

PyZMQ上,doc是使用发布/ 订阅的示例。

数据提供者创建PUB套接字并向其发送消息。

数据使用者设置SUB套接字并从中读取消息。

通常,PUB套接字是基础结构的固定部分,因此它绑定到某个端口,然后SUB连接。 但是,如果您愿意,可以对其进行切换,并且它也可以工作。

优点是:

  • 提供程序将消息发送到PUB套接字并且不会对其进行阻止
  • 重新连接是自动处理的
  • 如果没有使用者或连接,则PUB套接字会静默删除消息。
  • 实现这个的代码很短

ZeroMQ的其他消息传递模式

PUB / SUB只是一种选择,还有其他组合,例如PUSH / PULL,REQ / REP等。

我的PUSH / PULL服务已经运行了很多年,并且“保持良好”状态(通常需要6周的时间才能重新启动,但这是由于硬件问题而不是ZeroMQ库引起的)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM