使用cpickle序列化对象时的EOF

时间:2012-12-05 10:19:42

标签: python pickle

我有以下引用似乎工作正常:

from cPickle import *
class Clientthread(threading.Thread):
   def __init__(self,clientsocket, mystring):
      self.client = clientsocket
      self.clients = [clientsocket]
      self.testEntity = entity.Entity(position = [1,7])
      self.testTosend = dumps(self.testEntity,2)
      self.client.send(self.testTosend)

然而,当我尝试使用

反序列化整个内容时
 news=self.s.recv(1024)
 realnews = loads(news)

我在使用加载的行中出现EOF错误。 知道可能来自何处?

1 个答案:

答案 0 :(得分:0)

假设self.ssocketrecv方法并不总是返回您请求的确切字节数。如socket文档中所述,金额是recv要返回的最大字节数。

这会导致不完整的数据传递到您的loads