public MessagePump() { IPEndPoint[] ipep = Listener.EndPoints; m_Listeners = new Listener[ipep.Length]; bool success = false; do { for (int i = 0; i < ipep.Length; i++) { Listener l = new Listener(ipep[i]); if (!success && l != null) success = true; m_Listeners[i] = l; } if (!success) { Console.WriteLine("Retrying..."); Thread.Sleep(10000); } } while (!success); m_Queue = new Queue<NetState>(); m_WorkingQueue = new Queue<NetState>(); m_Throttled = new Queue<NetState>(); m_Peek = new byte[4]; }
public void AddListener(Listener l) { Listener[] old = m_Listeners; m_Listeners = new Listener[old.Length + 1]; for (int i = 0; i < old.Length; ++i) m_Listeners[i] = old[i]; m_Listeners[old.Length] = l; }