zoukankan      html  css  js  c++  java
  • C#监听服务

    控制台应用程序

     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     }
    HttpListenerService
  • 相关阅读:
    015.Delphi插件之QPlugins,FMX插件窗口
    014.Delphi插件之QPlugins,MDI窗口
    013.Delphi插件之QPlugins,模块化代码示例
    012.Delphi插件之QPlugins,多实例内嵌窗口服务
    011.Delphi插件之QPlugins,延时加载服务
    010.Delphi插件之QPlugins,遍历服务接口
    009.Delphi插件之QPlugins,服务的热插拔
    008.Delphi插件之QPlugins,服务的两种调用方法
    007.Delphi插件之QPlugins,插件的卸载和重新加载
    006.Delphi插件之QPlugins,多服务演示
  • 原文地址:https://www.cnblogs.com/shiyige-216/p/7813665.html
Copyright © 2011-2022 走看看