我有一个python程序,它从ADC读取值然后将它们写入文件,如果有连接可以通过TCP发送它们。我可以很好地发送数据,因为数据不断被读取我希望能够保持连接打开。如何让客户端检查服务器是否有更多数据要发送,从而保持连接打开?
答案 0 :(得分:0)
此方案似乎与我们的某个应用程序非常相似。我们使用ZeroMQ。
On PyZMQ doc是使用Pub / Sub。
的示例数据提供程序创建PUB套接字并向其发送消息。
数据使用者设置SUB套接字并从中读取消息。
通常,PUB套接字是基础设施的固定部分,因此它绑定到某个端口,并且SUB连接。但如果你愿意,你可以切换它,它也可以。
优点是:
PUB / SUB只是一个选项,还有其他组合,如PUSH / PULL,REQ / REP等。
我有一些服务在PUSH / PULL运行多年并保持“非常好”(通常需要6周时间才能重新启动,但这主要是由于硬件问题而不是ZeroMQ库。)