static void Main(string[] args) { // Supports 20 simultaneous connections. handler = new ListenerThreadHandler(); HttpListener listener = new HttpListener(); string url = "http://localhost/"; listener.Prefixes.Add(url); listener.Start(); for (int i = 0; i < 20; i++) { ThreadPool.QueueUserWorkItem(WaitForConnection, listener); } TimeStampStart(); for (int i = 0; i < 10; i++) { Console.WriteLine("Request #" + i); MakeRequest(i); } Console.WriteLine("Press a key to exit the server."); Console.ReadLine(); }
static void Main(string[] args) { // Supports 20 simultaneous connections. sem = new Semaphore(20, 20); handler = new ListenerThreadHandler(); HttpListener listener = new HttpListener(); string url = "http://localhost/"; listener.Prefixes.Add(url); listener.Start(); Task.Run(() => { while (true) { sem.WaitOne(); StartConnectionListener(listener); } }); TimeStampStart(); for (int i = 0; i < 10; i++) { Console.WriteLine("Request #" + i); MakeRequest(i); } Console.WriteLine("Press a key to exit the server."); Console.ReadLine(); }
static void Main(string[] args) { // Supports 20 simultaneous connections. handler = new ListenerThreadHandler(); HttpListener listener = new HttpListener(); string url = "http://localhost/"; listener.Prefixes.Add(url); listener.Start(); for (int i = 0; i < 20; i++) { Thread thread = new Thread(new ParameterizedThreadStart(WaitForConnection)); thread.IsBackground = true; thread.Start(listener); } TimeStampStart(); for (int i = 0; i < 10; i++) { Console.WriteLine("Request #" + i); MakeRequest(i); } Console.WriteLine("Press a key to exit the server."); Console.ReadLine(); }