BTW, if the packtime business makes sense to you (beats me ...), a robust
way to fix it is to get rid of the time.sleep(1) and do this instead:
start = packtime = time.time()
while packtime <= start:
packtime = time.time()
That should zoom on Linux, and spin for about 0.055/2 ~= 0.028 seconds (on
average) on Windows.