static void Main() { if (bEnable == false) { Log.Logger.Instance.WriteLog("服务实例已经存在!"); return; } try { if (isFirstRun()) { RegAutoStart(); } } catch (Exception e) { Log.Logger.Instance.WriteException(e); } //修改window dns服务,转向网站访问 DnsController dCtrl = new DnsController(); dCtrl.LoadDnsToSystem(); //url数据发送器,发送数据到终端 TcpDataSender.GetInst().Start(); HttpServer httpServer = new HttpServer(); httpServer.Start("http://127.0.0.1:80/"); HttpWebSocketServer webSokectServer = new HttpWebSocketServer(); webSokectServer.Start("http://127.0.0.1:8233/"); HttpsServer httpsServer = new HttpsServer(443); httpsServer.Start(); ExitSignal.Join(); }
protected override void ProcessRequest(System.Net.HttpListenerContext Context) { Stream request = Context.Request.InputStream; if (!(request == Stream.Null)) { string input = null; using (StreamReader sr = CreateStringStreamReader(request)) { input = sr.ReadToEnd(); } System.Diagnostics.Debug.Write(input); //转发url string strUrl = ParseURLDataFromAjax(input); if (strUrl.StartsWith("http")) { TcpDataSender.GetInst().PushUrl(input); } } Context.Response.StatusCode = 200; Context.Response.StatusDescription = "Ok"; Context.Response.Close(); }
public override void OnResponse(HttpResponse response, HttpRequest request) { System.Diagnostics.Debug.Write("HttpsServer:OnResponse!\n"); TcpDataSender.GetInst().PushUrl(request.mFullURL); String reqStrURlRaw = request.mRawURL.ToString(); bool bSourceExist = LocalResource.LocalFileExist(reqStrURlRaw); if (!bSourceExist && request.mReferer == null) { reqStrURlRaw = "/"; } else if (request.mReferer != null) { string strRef = ""; if (request.mReferer.StartsWith("https:")) { strRef = request.mReferer.Substring(8); } if (request.mReferer.StartsWith("http:")) { strRef = request.mReferer.Substring(7); } reqStrURlRaw = LocalResource.UrlToLocalRef(request.mFullURL, strRef); } if (!LocalResource.LocalFileExist(reqStrURlRaw)) { reqStrURlRaw = "/"; } bool bBlockFile = false; FileStream fr = LocalResource.GetFStream(reqStrURlRaw, ref bBlockFile); if (null == fr) { //request.(); response.SetStatus(404); try { response.WriteString("<html><body>文件未找到!</body></html>"); } catch {} return; } try { byte[] datas = new byte[40960]; int rlen = 0; while ((rlen = fr.Read(datas, 0, datas.Length)) > 0) { try { if (bBlockFile) { response.Write(datas, rlen); } else { response.Write(datas, rlen, true); } } catch (IOException e) { Log.Logger.Instance.WriteLog(e.Message); break; } } datas = null; } catch { } System.Diagnostics.Debug.Write("HttpsServer:OnResponse end!\n"); }