2013-01-24 36 views
5

いくつかの共通ソケットを使用して異なるサーバーにある2つのプログラム間でメッセージZeroMQを送信する方法を教えてください。 すべてのローカルソケットプログラムは動作しますが、どのように異なる場所に広がっているのか分かりません。登りエラーのため:ZeroMQ、外部のTCPソケットに接続する方法?

Traceback (most recent call last): 
    File "/Users/*****/Projects/*****/workers/internal_links_parser.py", line 20, in <module> 
    socket.bind("tcp://***.***.***.***:5000") 
    File "socket.pyx", line 447, in zmq.core.socket.Socket.bind (zmq/core/socket.c:4312) 
zmq.core.error.ZMQError: Can't assign requested address 

説明してください、例を挙げてください。どうも!

+0

あなたは再びこの質問を尋ねるために私の時間を保存しました!ありがとう –

答えて

8

zmq socket manualSocket.bind;

This causes the socket to listen on a network port. Sockets on the other side of this connection will use Socket.connect(addr) to connect to this socket.

つまり、0mqに着信接続のローカルポートをリッスンするように指示します。 socket.bind("tcp://0.0.0.0:5000")のようなものを使用して、ポート5000のマシンのすべてのIPアドレスを聞く必要があります。

接続の反対側には、socket.connect("tcp://remoteip:5000")のようなURLのSocket.connectを使用して相手側のリスニングに接続する必要があります。

ローカルにバインドしてリモートに接続する代わりに、リモートアドレスにbindしようとしているというエラーメッセージが表示されるようです。

2

ファイアウォールを確認することを忘れないでください。無効にする必要があります。

また、サーバーがtelnetでアクセスであるかどうかを知るためにチェックすることができます。

telnet serverIPaddress serverPortNo 
関連する問題