我正在尝试使用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地址。此外,我通过在线服务及其opend正确测试了端口。
答案 0 :(得分:1)
您是否尝试过manual中提到的所有建议?
您的守护程序根据您认为的地址无法访问。也许您需要在守护程序构造函数调用中添加适当的绑定主机,以将其绑定在可从外部访问的网络接口上。
还尝试逐一消除可能的原因,看看哪一个是罪魁祸首。例如,您是否尝试在没有路由器的情况下运行它?