您能否告诉我如何使用一些通用套接字在不同服务器上的两个程序之间发送消息ZeroMQ? 所有本地套接字程序都有效,但我不明白它们是如何传播到不同的地方的。因为攀登错误:
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
请解释,如果不难给出一个例子。 THX!
答案 0 :(得分:9)
来自Socket.bind
上的zmq socket manual;
这会导致套接字侦听网络端口。此连接另一端的套接字将使用Socket.connect(addr)连接到此套接字。
换句话说,这将告诉0mq监听本地端口的传入连接;你应该使用socket.bind("tcp://0.0.0.0:5000")
之类的东西来监听端口5000上所有机器的IP地址。
连接的另一端应使用Socket.connect
,其网址类似于socket.connect("tcp://remoteip:5000")
,以便连接到另一方听。
从错误消息中可以看出,您正尝试bind
到远程地址,而不是绑定到本地并连接到远程地址。
答案 1 :(得分:2)
别忘了检查防火墙。它应该是不活动的。
此外,您可以使用 telnet
检查服务器是否可访问:
telnet serverIPaddress serverPortNo