簡體   English   中英

Python套接字編程

[英]Python Socket Programming

我正在開發用於雲計算環境的測試平台。 我想與服務器建立多個客戶端連接。 我想要的是,服務器首先向指定了sending_interval的所有客戶端發送數據,然后所有客戶端將繼續以該time_interval的時間間隔(由服務器指定)發送其數據。 請幫幫我,如何使用python socket程序做同樣的事情。 (即,我希望多個客戶端到單個服務器連接,也希望客戶端在服務器指定的時間間隔內發送數據)。 如果有人可以幫助我,我會感到非常滿意。 提前致謝。

ZeroMQ套接字庫可以輕松解決此問題。 生產穩定。 它允許您定義發布者與訂閱者之間的關系,其中發布過程將在端口上發布數據,而不管有多少個(0到無限)偵聽過程。 他們稱其為PUB-SUB模型; 在他們的文檔中(下面的鏈接)。

聽起來您想設置一堆都是發布者的客戶。 他們可以訂閱一個控制通道,該通道將向其配置發送更新(寫頻率)。 他們還充當發布者,以默認/配置通道/套接字指定的間隔推出自己的數據。

然后,您將具有一個或多個偵聽進程,以偵聽所有客戶端發布的消息。 也許您甚至可以有兩個偵聽過程,一個用於備份或DR,或其他。

我們使用ZeroMQ並喜歡它提供的簡單性 ; 沒有連接錯誤,因為發布者不關心是否有人在聽,並且訂閱者可以在發布者之前開始,並且如果那里沒有可聽的內容,它可以循環並等待直到出現。

綁定支持所有語言(很奇怪)。 Python綁定不是純Python,它確實需要C編譯器,但速度驚人,而且pub / sub示例是剪切/粘貼操作,“太棒了,它起作用了!” 經驗。

鏈接:http: //zeromq.org

該庫還有許多其他可用的方法,包括消息隊列等。它們也具有相對完整的文檔。

多客戶端和單服務器套接字編程可以通過套接字編程中的多線程來實現。 我已經實現了兩種方法:

  1. 單客戶端和單服務器
  2. 多客戶端和單服務器

在我的GitHub Repo鏈接中: https : //github.com/shauryauppal/Socket-Programming-Python

什么是多線程套接字編程? 多線程是在單個進程中同時執行多個線程的進程。

要了解得很好,您可以訪問我寫的鏈接: https : //www.geeksforgeeks.org/socket-programming-multi-threading-python/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM