【发布时间】:2012-12-08 02:11:56
【问题描述】:
我有 while 循环来获取数据包
unpackedData = struct.unpack("!BBHHHBBH4s4sHH4s4s4sHH4s", data[:44])
这行抛出异常
解包需要一个长度为 44 python 的字符串参数
但是在使用调试器后,我注意到它发生在几个循环之后,我认为是因为缓存已满。
有什么办法可以清除 python 缓存或销毁对象或类似的东西?
【问题讨论】:
-
data在 while 循环中还会发生什么?是不是缩短了? Python 很乐意让你的索引超出范围(在一个切片中):'foo'[:500]只给你'foo' -
你检查过
len(data) >= 44吗?请记住len('abc'[:44]) == 3. -
@zigg -- 这正是我的想法
标签: python tcp garbage-collection ip packet