控制台应用程序
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 HttpListenerService hls = new HttpListenerService(); 6 hls.OnStart(null); 7 Console.WriteLine("按任意键退出..."); 8 Console.ReadLine(); 9 } 10 }
监听服务

1 internal class HttpListenerService 2 { 3 /// <summary> 4 /// 构造函数 5 /// </summary> 6 public HttpListenerService() { } 7 8 public void OnStart(string[] args) 9 { 10 Console.Title = "HTTP 监听服务!"; 11 //http listener 12 System.Net.HttpListener httplistener = new System.Net.HttpListener(); 13 httplistener.Prefixes.Add("http://localhost:8855/data/sync/"); 14 httplistener.Prefixes.Add("http://localhost:8855/data/listen/"); 15 //httplistener.ExtendedProtectionSelectorDelegate += (o) => 16 // { 17 // o.Headers["Server"] = "DTK-Server"; 18 // return null; 19 // }; 20 try 21 { 22 httplistener.Start(); 23 //Handle(httplistener); 24 System.Threading.ThreadPool.SetMinThreads(10, 3); 25 26 System.Threading.ThreadPool.SetMaxThreads(1000, 512); 27 28 //System.Threading.ThreadPool.QueueUserWorkItem((state) => { Handle((System.Net.HttpListener)state); }, httplistener); 29 System.Threading.ThreadPool.QueueUserWorkItem((start) => { Handle(httplistener); }); 30 31 FluentConsole.Green.Line("API监听服务启动成功!"); 32 } 33 catch (Exception ex) 34 { 35 FluentConsole.Red.Line(ex.Message); 36 if (httplistener.IsListening) 37 { 38 httplistener.Stop(); 39 } 40 } 41 } 42 43 private void Handle(System.Net.HttpListener httpListener) 44 { 45 while (true) 46 { 47 System.Net.HttpListenerContext context = httpListener.GetContext(); 48 System.Net.HttpListenerRequest request = context.Request; 49 //context.Response.Headers["Server"] = "DTK-Server"; 50 if (httpListener.IsListening && request != null) 51 { 52 System.Net.HttpListenerResponse response = context.Response; 53 54 if (request.RawUrl.IndexOf("/data/listen/") > -1) 55 { 56 for (int i = 0; i < 10; i++) 57 { 58 FluentConsole.Green.Line("请求成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); 59 FluentConsole.Green.Line("-------------------------------<>---------------------------"); 60 } 61 } 62 } 63 } 64 } 65 }