Improved performance. Doesn't use glutIdle, doesn't store more than about 50 packets at once.