中控考勤机WEB主动上报接收SERVER程序

using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { using (var listerner = new HttpListener()) { listerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous; var ipEntry = Dns.GetHostEntry(Dns.GetHostName()); var ipList = ipEntry.AddressList; const int port = 8088; foreach (var ip in ipList) { if (IsCorrenctIp(ip.ToString())) { listerner.Prefixes.Add("" + ip + ":"+ port + "/iclock/"); } } listerner.Prefixes.Add(":"+ port + "/iclock/"); listerner.Prefixes.Add(":"+ port + "/iclock/"); listerner.Start(); Console.WriteLine("【系统提示】考勤管理系统启动成功!"); while (true) { //等待请求连接 //没有请求则GetContext处于阻塞状态 var ctx = listerner.GetContext(); ctx.Response.StatusCode = 200;//设置返回给客服端http状态代码 var sn = ctx.Request.QueryString["SN"]; var httpMethod=ctx.Request.HttpMethod; var table = ctx.Request.QueryString["table"]; var count = 1; if ((sn != null) &&(table!=null)&&table== "ATTLOG"&&(httpMethod=="POST")) { Console.WriteLine("设备号:"+sn); var result = GetRequestPostData(ctx.Request, out count); var array = result.Split(\'\t\'); var userId = array[0]; var userName = "未知人员"; if (userId == "1") { userName = "黄海"; } if (userId == "2") { userName = "吴缤"; } if (userId == "3") { userName = "申健"; } if (userId == "197710110") { userName = "周枫"; } Console.WriteLine(userName + " " + array[1]); } //使用Writer输出http响应代码 using (var writer = new StreamWriter(ctx.Response.OutputStream)) { ctx.Response.ContentType = ctx.Request.AcceptTypes[0]; writer.WriteLine("HTTP/1.1 200 OK"+"<br>"); writer.WriteLine("Server: DsidealSuperServer/1.9.0" + "<br>"); writer.WriteLine(DateTime.Now.ToString("r") + "<br>"); writer.WriteLine("Content-Type: text/plain" + "<br>"); writer.WriteLine("Connection: close" + "<br>"); writer.WriteLine("Content-Length: "+(3+count.ToString().Length)+ "<br>"); writer.WriteLine("Pragma: no-cache" + "<br>"); writer.WriteLine("Cache-Control: no-store" + "<br>"); writer.WriteLine("" + "<br>"); writer.WriteLine("OK:"+ count + "<br>"); writer.Close(); ctx.Response.Close(); } } } } public static bool IsCorrenctIp(string ip) { var pattrn = @"(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])"; return Regex.IsMatch(ip, pattrn); } public static string GetRequestPostData(HttpListenerRequest request,out int Count) { Count = 0; if (!request.HasEntityBody) { return null; } var returnStr = ""; using (var body = request.InputStream) { using (var reader = new StreamReader(body, request.ContentEncoding)) { while (reader.Peek() >= 0) { var nowString = (char) reader.Read(); if (nowString.ToString() == "\n") { Count++; } returnStr = returnStr+ nowString; } } } return returnStr; } } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzspxf.html