我试图解开通过套接字发送的对象
我的服务器有这个类
ActivePeerList = []
class PeerInfo():
def __init__(self):
self.hostname = ""
self.cookie = None
self.active = False
self.TTL = 7200
self.port = ""
self.no_of_times = 0
self.LastActiveDate = None
我将这个类的实例附加到列表中,并通过套接字将其发送到客户端。在
^{pr2}$当我试图取消拾取时,即酸洗负荷(客户端.recv(1024))
AttributeError: Can't get attribute 'PeerInfo' on <module '__main__' (<_frozen_importlib.SourceFileLoader object at 0x0000000002A73828>)>
是否禁止传输未知类(即客户未知)??即使是这样,我也会把它包含在一个列表对象中。所以它应该有用。正确的??在
任何帮助都将不胜感激
Pickling通过传递函数和类的限定名(使用一些样板文件)来处理函数和类,以便在取消pickle时查找它们。它使结果pickle小得多,但是因为它不能传递任何关于它们的信息,所以你所尝试的就行不通了。您的必须在取消拾取端使用相同的限定名,否则它将无法工作。在
如果您想使用任意形式的序列化数据(客户机缺少完整的定义),我建议您使用JSON或XML(这两种方法都可以避免从潜在的不可信源取消pickle的安全风险)。在
相关问题 更多 >
编程相关推荐