0
我有一個python程序,它讀取ADC中的值,然後將它們寫入文件,並在TCP連接可用時通過TCP發送它們。我可以很好地發送數據,但隨着數據不斷被讀取,我希望能夠保持連接打開。我如何讓客戶端檢查服務器是否有更多數據要發送,從而保持連接打開?維護TCP連接
我有一個python程序,它讀取ADC中的值,然後將它們寫入文件,並在TCP連接可用時通過TCP發送它們。我可以很好地發送數據,但隨着數據不斷被讀取,我希望能夠保持連接打開。我如何讓客戶端檢查服務器是否有更多數據要發送,從而保持連接打開?維護TCP連接
這種情況看起來與我們的應用程序非常相似。我們爲此使用ZeroMQ。
在PyZMQ doc是例如用於使用發佈/訂閱。
數據提供者創建PUB套接字並向其發送消息。
數據使用者設置SUB套接字並從中讀取消息。
通常情況下,PUB套接字是固定的基礎設施的一部分,所以它綁定到某個端口,並連接SUB。但如果你喜歡,你可以切換它,它也可以。
優點是:
的Pub/Sub只是一種選擇,有喜歡的推/拉,REQ/REP等
其他組合我有一些服務運行多年PUSH/PULL,並保持「相當好」(通常有6個星期才需要重新啓動,但這是由於硬件上的問題比在ZeroMQ庫中。 )
爲什麼你不能只發送向服務器發送一個命令(以字符串形式),該命令將導致響應是否有要發送的數據? –
嘗試發送每秒保持活動(一些任意數據) –