我有问题从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
对不起,忘记提及 –