Python rpyc "socket.error: [Errno 113] Нет маршрута к хосту"

У меня есть две машины, использующие python rpyc один сервер(ip:10.0.3.120)другой - клиент (ip:10.0.3.197). Код показывает ниже:

Сервер (ip:10.0.3.120)

from rpyc import Service
from rpyc.utils.server import ThreadedServer

class TestService(Service):

    def exposed_test(self, num):
        return num + 1

sr = ThreadedServer(TestService, port=9999, auto_register=False)
sr.start()

Клиент (ip:10.0.3.129)

import rpyc
conn = rpyc.connect('10.0.3.120', 9999)
cResult = conn.root.test(11)
conn.close()

print cResult

Клиент показывает эту ошибку при запуске server а также client:

Traceback (most recent call last):
File "rpyc_client.py", line 4, in <module>
conn = rpyc.connect('10.0.3.120', 9999)
File "/usr/local/lib/python2.7/site-packages/rpyc-3.2.3-py2.7.egg/rpyc/utils/factory.py", line 89, in connect
s = SocketStream.connect(host, port, ipv6 = ipv6)
File "/usr/local/lib/python2.7/site-packages/rpyc-3.2.3-py2.7.egg/rpyc/core/stream.py", line 114, in connect
return cls(cls._connect(host, port, **kwargs))
File "/usr/local/lib/python2.7/site-packages/rpyc-3.2.3-py2.7.egg/rpyc/core/stream.py", line 92, in _connect
s.connect((host, port))
File "/usr/local/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)

Как connect метод использования? Если я использую публичную сеть IP для создания rpyc сервер, могу ли я подключить его дома?? Большое спасибо!

2 ответа

Просто удалите все iptables правила на клиенте с этой командой:

iptables -F

Сначала проверьте команду ping подключения. В вашем коде сервер работает на localhost. Для того, чтобы к нему можно было получить доступ со стороны вашего правильного адреса или * (тогда сервер будет работать на всех возможных адресах текущего компьютера). Я думаю, что auto_register должен быть равен None.

from rpyc import Service
from rpyc.utils.server import ThreadedServer

class TestService(Service):

    def exposed_test(self, num):
        return num + 1

sr = ThreadedServer(TestService, hostname='10.0.3.120', port=9999, auto_register=None)
# or sr = ThreadedServer(TestService, hostname='*', port=9999, auto_register=None)
sr.start()
Другие вопросы по тегам