2015-07-12 169 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

我試圖連接沒有路由器,但得到了同樣的錯誤。你能解釋一下:「也許你需要添加一個合適的綁定主機到守護進程構造函數調用」,就像另一個主機和端口一樣? –

相關問題