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
  • 相关阅读:
    如何使网站不出现从客户端(:)中检测到有潜在危险的 Request.Path 值这样类似的提示
    layui下select下拉框不显示或没有效果
    video
    各个平台的mysql重启命令
    微信开放平台 redirect_uri参数错误
    JS中setTimeout()的用法详解
    验证视图状态MAC失败的解决办法
    The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
    一个Nginx部署多个vue前端项目总结
    Java之HttpClient调用WebService接口发送短信源码实战
  • 原文地址:https://www.cnblogs.com/shiyige-216/p/7813665.html
Copyright © 2011-2022 走看看