0
有沒有辦法看到連接後ZeroMQ(實際上是pyzmq
)端口連接到哪個端口?
例如...ZeroMQ:如何找到PAIR套接字使用哪個端口?
import zmq
context = zmq.Context()
socket = context.socket(zmq.PAIR)
port = socket.bind_to_random_port("tcp://*")
# some other code that might change that binding
actual_port = socket.which_port???() # (this is what I want)
不能在文件或其他論壇上找到。會幫我節省一些調試時間!
```
你可以用'sock.get(zmq.FD)'得到底層的FD,然後使用標準的'getsockname'和'getpeername'函數? – o11c
@ o11c這聽起來像一個很好的方向,但我仍然不知道如何做到這一點? 'pyzmq'似乎缺少'getsockname',它會告訴端口,或者我無法找到它? –
「標準」,我的意思是它在'套接字'模塊。你必須首先調用'socket.fromfd'來得到一個(內部'dup''ed,所以你不必擔心它會在你之下關閉)'socket'對象,這需要傳遞這個家族(AF_INET '或'AF_INET6' - 不知道默認的zmq是什麼)並鍵入('SOCK_STREAM'爲'tcp://')。 – o11c