public virtual void Run() { TransportPacket packet = null; do { try { packet = storage.waitPacket(); if (packet != null) { packet.Transport.send(packet.Data); } } catch (System.IO.IOException ex) { System.Console.Error.WriteLine("Unable to write packet for transport " + packet.Transport); Console.WriteLine(ex.ToString()); } }while (packet != null); }