//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(); // } //}