我有問題從Pyro4服務器(版本4.39,serializer = pickle)獲取簡單的numpy陣列,當它的大小超過特定的閾值。服務器處理請求和來回復,但客戶端撐掛Pyro4客戶端沒有收到消息
代碼如下:
服務器代碼:
import numpy as np, Pyro4
class U(object):
def __init__(self):
self.Data = np.arange(10000000).reshape(200,50000)
print self.Data.shape
def get(self,name):
print '%s Requested' % name
return self.Data
def run():
Uni = U()
daemon = Pyro4.Daemon(host='localhost')
ns = Pyro4.locateNS()
uri = daemon.register(Uni)
ns.register("test",uri)
print 'Up and waiting ...'
daemon.requestLoop()
if __name__ == '__main__':
run()
客戶端代碼:
import Pyro4
ns = Pyro4.locateNS()
uri = ns.lookup('test')
U=Pyro4.Proxy(uri)
Data = U.get('Data')
服務器輸出: ( 200,50000) 正在等待... 需要數據
所以看起來Pyro服務器處理來自客戶端的請求並返回數據,但客戶端永遠不會收到它並且無限期地等待接收消息。
PS: - 爲更小的尺寸陣列相同的代碼工作(200,5000)
沒有任何一個有一個想法可能是什麼問題?
你的幫助是非常讚賞,
另外一個需要運行'蟒蛇-m「Pyro4.naming」'啓動名稱服務器。 – User
對不起,忘記提及 –