2015-07-12 171 views
0

我想客户机连接到使用PYRO4和Python 2.7PYRO4 - errno的10061连接被拒绝

我的服务器代码是不同的网络中的服务器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:[email protected]: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. 我关闭了防火墙和防病毒软件。
+0

任何人都可以帮助我。 –

回答

0

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

您的守护进程根本无法访问您认为是的地址。也许你需要将一个合适的绑定主机添加到守护进程构造函数调用中,以将其绑定到可从外部访问的网络接口上。

也尝试逐个消除可能的原因,看看哪一个是罪魁祸首。例如,你是否试图在没有路由器的情况下运行它?

+0

我检查了手册中的一些提示。例如,有些时候ping和telnet工作正常,有些时候没有,我使用pickle作为序列化程序。另外,我在手册中的[在NAT路由器/防火墙后面的Pyro中](https://pythonhosted.org/Pyro4/tipstricks.html#nat-router)中看到了有关如何使Pyro在路由器后工作的信息,该页面中的守护进程示例。对不起我的engilsh不好,谢谢你的帮助我希望能尽快建立联系,因为我正在攻读计算机科学硕士学位,pyro是我最后一个项目的要求之一。 –

+0

我会尝试在没有路由器的情况下运行它。 –

+0

我试图连接没有路由器,但得到了同样的错误。你能解释一下:“也许你需要添加一个合适的绑定主机到守护进程构造函数调用”,就像另一个主机和端口一样? –

相关问题