1

我正在尝试使用 PYRO4 和 Python 2.7 将客户端计算机连接到不同网络中的服务器 mashine

我的服务器代码是:

import Pyro4

class Thing(object):
    def method(self, arg):
        return arg*2

daemon=Pyro4.Daemon(port=9999,nathost="78.149.X.X", natport=5555)
uri=daemon.register(Thing(),"gameServer")  # register Thing() as a Pyro object
print "Ready. Object uri =", uri
daemon.requestLoop()

客户端代码是:

import Pyro4

server = Pyro4.Proxy("PYRO:gameServer@78.149.X.X:5555")
print server.method(6)

但是,当我运行服务器时,出现此错误:

CommunicationError: cannot connect: [Errno 10061] No connection could be made because the target machine actively refused it

我自 8 小时以来一直在寻找解决此问题的方法,但似乎不会永远解决。如果有人知道解决方案,请帮助我。

注意: 1. 我在路由器后面运行服务器,所以我将端口 5555 转发到我的私有 IP 地址。此外,我通过在线服务测试了该端口,并正确打开了它。

  1. 我关闭了防火墙和杀毒软件。
4

1 回答 1

1

您是否尝试过手册中提到的所有建议?

您的守护程序根本无法在您认为的地址上访问。或许您需要将适当的绑定主机添加到守护程序构造函数调用,以将其绑定到可从外部访问的网络接口上。

还要试着一一排除可能的原因,看看哪一个是罪魁祸首。例如,您是否尝试过在没有路由器的情况下运行它?

于 2015-07-13T20:08:53.107 回答