2017-08-28 9 views
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) 

は、マニュアルまたは他のフォーラムでは見つかりませんでした。デバッグ時間を節約できましたか?

`` `

+1

'sock.get(zmq.FD)'で基礎となるFDを取得し、標準の 'getsockname'と' getpeername'関数を使用できますか? – o11c

+0

@ o11cこれは良い方向に聞こえるが、これをどうやって行うのかまだ分からない。 'pyzmq'は' getsockname'が見つからないと思われます。これはポートに伝えますか、それともそれを見つけることができませんか? –

+0

"標準"とは、それが 'socket'モジュールにあることを意味しました。 'socket.fromfd'を呼び出すと(内部的に' dup'されているので、あなたのもとで閉じられることを心配する必要はありません) 'socket'オブジェクトが最初に呼び出されます。これには、ファミリを渡す必要があります(' AF_INET 'または' AF_INET6' - zmqがデフォルトになっているかどうかわかりません)、( 'tcp://'の 'SOCK_STREAM')をタイプしてください。 – o11c

答えて

0

.bind_to_random_port()方法が自動的にバインドするポートを選択し、リターンはそれがあまりにもバインドされたポートが含まれます。返品はintです。

関連する問題