ソケットは単にインターフェースにバインドし、このように、すぐにメッセージを受信することができますされていますPythonでZMQ:ZMQの各着信接続のための新しいソケットオブジェクト
socket.bind("tcp://*:5555")
message = socket.recv()
複数の接続がにデータを送信することができるので、そのソケットを同時に、どのように別の送信者を区別する?一方
正規ソケットと、着信接続が最初にこのような新しいソケット、スポーンれ、受け入れられ、:ここ
serversocket.bind((socket.gethostname(), 5555))
serversocket.listen()
(clientsocket, address) = serversocket.accept()
を各々がを通じて受信されているので、異なる送信者を容易に区別することができます別のソケット。
ZMQの便利なメッセージベースのキューバッファリング通信の恩恵を受ける最善の方法はありますが、リクエストされると同時に任意の数の識別可能な1対1接続を作成しますか?
ありがとうございました。 追加質問: 'ROUTER'がクライアントIDを選択するスキーマを設定できますか? このようなサーバー生成のクライアントIDはどのくらい永続的ですか?どのような状況で変化しますか?これを制御/検出することは可能ですか? –
私が知っている唯一の設定は 'setsockopt'です。自動的に生成されたIDは、接続の存続期間中は同じままです。私はこれがサイレント再接続をカバーするかどうかはわかりませんが、基本的なネットワーク接続がダウンした場合、zeromqは再接続を行います。私は通常、 'setsockopt'経由でIDを設定します。接続、送信、切断、後で再接続、前回のリクエストからのステータス更新の取得が可能です。 – David