Beispiel #1
0
 public static TcpDataSender GetInst()
 {
     if (s_staticInst == null)
     {
         s_staticInst = new TcpDataSender();
     }
     return(s_staticInst);
 }
Beispiel #2
0
        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();
        }
Beispiel #4
0
        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");
        }