Соединение ZeroMQ между 2 компьютерами не работает

#python #zeromq #pyzmq

Вопрос:

Я пытаюсь создать соединение между двумя компьютерами с помощью ZMQ. Когда я выполняю следующий код на одном компьютере на двух отдельных экземплярах ноутбука jupyter, проблем не возникает. Код запущен, и передача данных работает. Но когда я пытаюсь создать связь между двумя разными компьютерами, подключенными к одной и той же сети, запрос никогда не поступает.

Запрашивающий

 import zmq

context = zmq.Context()

#  Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:61260")

#  Do 10 requests, waiting each time for a response
for request in range(10):
    print("Sending request %f …" % request)
    socket.send(request)

    #  Get the reply.
    message = socket.recv()
    print("Received reply %s [ %s ]" % (request, message))
 

Ответчик

 import time
import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:61260")

while True:
    #  Wait for next request from client
    message = socket.recv()
    print("Received request: %s" % message)

    #  Do some 'work'
    time.sleep(1)

    #  Send reply back to client
    socket.send(b"World")
 

Комментарии:

1. Это кажется очевидным, что подключение к «локальному хосту» не работает, когда другая сторона работает на другой машине. «локальный хост» — это псевдоним машины, на которой выполняется код.