大家好,这里的居民们! 我想学习/详细说明通过远程共享对象方法服务对象
class ContainerFS():
#contains stuffs, has its methods
def sync(self):
pass
def dump(self):
stuff()
class DataManager(BaseManager):
def get_data(self):
pass
class DataProcess(Process):
def __init__(self, serverobj, authkey, public=False, port=11111):
Process.__init__(self)
self.authkey = authkey
self.Obj = serverobj
self.daemon = True
self.port = port
self.addr = '127.0.0.1'
if public:
self.addr = '0.0.0.0'
def run(self):
DataManager.register('get_data',
callable=lambda: self.Obj)
manager = DataManager(
address=(self.addr, self.port),
authkey=self.authkey)
srv = datamgr.get_server()
srv.serve_forever()
类ContainerFS作为serverobj的参数提供。然后,它通过套接字向客户机提供数据。你知道吗
目前为止,客户的工作方式如下:
class DataClient(object):
def __init__(self):
pass
def create(self, authkey):
try:
DataManager.register('get_data')
self.m = DataManager(address=('127.0.0.1', 11111), authkey=authkey)
return True
except:
return False
def connect(self):
try:
self.m.connect()
q = self.m.get_data()
return q
except:
return False
考虑到可以共享任意python对象并以这种方式访问其方法,因此可能会有很多有趣的东西来自于这样一个肥沃的领域。所以,如果你有一些好主意,请把它们混合在一起。你知道吗
我尝试子类化SocketServer并让它以这种方式处理SSL,但未能实现。我怎么能对这东西有兴趣?如果没有SSL选项,那么使用ssh端口转发就足够了吗?你知道吗
我可以断言serverobj的方法调用在某种程度上是有效的吗。如果是,我应该去哪里:DataProcess、DataManager或serverobj?你知道吗
仍然在做这些事情而没有真正理解它。例如,我如何才能使用这个数据管理器坐在他们的空?你知道吗
我觉得以这种方式暴露python对象确实不安全。因此,我应该克制自己打造自己的“安全感”。我喜欢断言我的想法是错误的,以便通过阐述来检验。那就是我希望你能进来的地方。你知道吗
如果我不清楚或似乎没有任何意义,请指出它。我对什么都还不熟悉。。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐