Pythonを使用したDebian/マルチプロセスの状況でzeromqを使用しようとしています。多数のセンサーから生データをデコードし、zmqで公開するプロセスがいくつかあります。ここまでは順調ですね。zmqの生データをサブスクライブし、いくつかの計算を実行する計算プロセスがあります。次に、他のプロセスがログに記録して消費するために、その回答を公開する必要があります。したがって、私の計算プロセスは、同じプロセスでサブスクライブとパブリッシュの両方を行う必要があります。
import zmq
import json
context = zmq.Context()
sub = context.socket(zmq.SUB)
sub.setsockopt(zmq.SUBSCRIBE, '')
sub.setsockopt(zmq.RCVBUF, 0)
sub.bind("tcp://127.0.0.1:5000")
pub = context.socket(zmq.PUB)
pub.bind("tcp://127.0.0.1:5000")
上記を試しましたが、うまくいきませんでした。エラーを返します...
File "socket.pyx", line 465, in zmq.core.socket.Socket.bind (zmq/core/socket.c:4749)
zmq.core.error.ZMQError: Address already in use
ドキュメントやグーグルなどを読みましたが、今は完全に行き詰まっています。