http.sys的简单应用

   //public void Run()
        //{
        //    //httpListener提供一个简单,可通过编程方式控制的Http协议侦听器。此类不能被继承。
        //    if (!HttpListener.IsSupported)
        //    {
        //        //该类只能在Windows xp sp2或者Windows server 200 以上的操作系统中才能使用,因为这个类必须使用Http.sys系统组件才能完成工作
        //        //。所以在使用前应该先判断一下是否支持该类
        //        this.listShow.Items.Add("Windows xp sp2 or server 2003 is required to use the HttpListener class");
        //    }
        //    //设置前缀,必须以‘/’结尾
        //    string[] prefixes = new string[] {
        //        "http://localhost:8888/server/",
        //        "http://127.0.0.1:8888/server/",
        //        "http://"+NetWorkHelp.GetIntranetIP()+":8888/server/"
        //         //,"http://"+NetWorkHelp.GetPublicNetworkIP()+":8888/server/"
        //    };
        //    //初始化监听器
        //    HttpListener listener = new HttpListener();
        //    //将前缀添加到监听器
        //    foreach (var item in prefixes)
        //    {
        //        listener.Prefixes.Add(item);
        //    }
        //    //判断是否已经启动了监听器,如果没有则开启
        //    if (!listener.IsListening)
        //    {
        //        listener.Start();
        //    }
        //    //提示
        //    this.listShow.Items.Add("服务已经启动,监听 http://localhost:8888/server  " + DateTime.Now.ToLocalTime());
        //    while (true)
        //    {
        //        //等待传入的请求,该方法将阻塞进程,直到收到请求
        //        HttpListenerContext context = listener.GetContext();
        //        //取得请求的对象
        //        HttpListenerRequest request = context.Request;
        //        //根据请求分配处理方法
        //        if (request.QueryString["flag"] == "kt")
        //        {
        //            //添加请求回显信息 
        //            this.listShow.Items.Add("收到开台请求	" + DateTime.Now.ToLocalTime());
        //            btnKT_Click(null, null);
        //        }
        //        if (request.QueryString["flag"] == "dc")
        //        {
        //            //添加请求回显信息 
        //            this.listShow.Items.Add("收到点菜请求	" + DateTime.Now.ToLocalTime());
        //            btnDC_Click(null, null);
        //        }
        //        if (request.QueryString["flag"] == "cash")
        //        {
        //            //添加请求回显信息 
        //            this.listShow.Items.Add("收到收银请求	" + DateTime.Now.ToLocalTime());
        //            btnCash_Click(null, null);
        //        }
        //        //取得响应对象
        //        HttpListenerResponse response = context.Response;
        //        //构造响应内容
        //        //准备发送到客户端的网页
        //        var json = new ResponseMsg()
        //        {
        //            datetime = DateTime.Now.ToLocalTime(),
        //            success = true
        //        };
        //        IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
        //        timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
        //        string responseBody = JsonConvert.SerializeObject(json, Formatting.Indented, timeFormat);
        //        //设置响应头部内容,长度及编码
        //        response.ContentLength64 = System.Text.Encoding.UTF8.GetByteCount(responseBody);
        //        response.ContentType = "application/json; Charset=UTF-8";
        //        //输出响应内容
        //        Stream output = response.OutputStream;
        //        StreamWriter sw = new System.IO.StreamWriter(output);
        //        sw.Write(responseBody);
        //        sw.Dispose();
        //    }
        //}
原文地址:https://www.cnblogs.com/gaocong/p/8746276.html