コード例 #1
0
ファイル: Program.cs プロジェクト: sky-gc/AgpsServer
        ////处理连接
        //static void appServer_NewSessionConnected(AppSession session)
        //{
        //    session.Send("Welcome to SuperSocket Telnet Server");
        //}

        ////处理请求
        //static void appServer_NewRequestReceived(AppSession session, StringRequestInfo requestInfo)
        //{
        //    switch (requestInfo.Key.ToUpper())
        //    {
        //        case "1":
        //            {
        //                session.Send("123456789");

        //            }
        //            break;
        //        case "2":
        //            {
        //                session.Send("2222222222");
        //            }
        //            break;
        //        case "3":
        //            {
        //                session.Send("333333333333");
        //            }
        //            break;

        //    }
        //    //switch (requestInfo.Key.ToUpper())
        //    //{
        //    //    case ("ECHO"):
        //    //        session.Send(requestInfo.Body);
        //    //        break;

        //    //    case ("ADD"):
        //    //        session.Send(requestInfo.Parameters.Select(p => Convert.ToInt32(p)).Sum().ToString());
        //    //        break;

        //    //    case ("MULT"):

        //    //        var result = 1;

        //    //        foreach (var factor in requestInfo.Parameters.Select(p => Convert.ToInt32(p)))
        //    //        {
        //    //            result *= factor;
        //    //        }

        //    //        session.Send(result.ToString());
        //    //        break;
        //    //}
        //}

        //public class TelnetSession : AppSession<TelnetSession>
        //{
        //    protected override void OnSessionStarted()
        //    {
        //        this.Send("Welcom to Supersocket Telnet Server");
        //    }

        //    protected override void HandleUnknownRequest(StringRequestInfo requestInfo)
        //    {
        //        this.Send("Unknow request");
        //    }

        //    protected override void HandleException(Exception e)
        //    {
        //        this.Send("Application error: {0}", e.Message);
        //    }

        //    protected override void OnSessionClosed(CloseReason reason)
        //    {
        //        //add you logics which will be executed after the session is closed
        //        base.OnSessionClosed(reason);
        //    }
        //}

        //public class TelnetServer : AppServer<TelnetSession>
        //{
        //    protected override bool Setup(IRootConfig rootConfig, IServerConfig config)
        //    {
        //        return base.Setup(rootConfig, config);
        //    }

        //    protected override void OnStartup()
        //    {
        //        base.OnStartup();
        //    }

        //    protected override void OnStopped()
        //    {
        //        base.OnStopped();
        //    }
        //}

        private static void AgpsUbloxHandle(object source, ElapsedEventArgs e)
        {
            string host = "agps.u-blox.com";
            int    port = 46434;

            AgpsClient client = new AgpsClient();

            //string host = "121.199.26.185";
            //int port = 5000;
            Console.WriteLine("AgpsUbloxHandle");
            //string result = SocketSendReceive(host, port);
            client.StartClient(host, port);

            //MTK AGPS data
            MtkAgpsData mtkAgps = new MtkAgpsData();

            mtkAgps.update();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: sky-gc/AgpsServer
        static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start the agps client!");

            Console.ReadKey();
            Console.WriteLine();

            //测试代码
            //byte[] rsp = { 0x30, 0x00, 0x31, 0x00, 0x1D, 0x60, 0xD1, 0x79, 0x80, 0xA0, 0xA1 };
            //byte[] rsp1 = { 0x40, 0x00, 0x41, 0x00, 0x1D, 0x60, 0xD1, 0x79, 0x80, 0xB0, 0xB1, 0xC0, 0xCF, 0xFE, 0xFF };
            //string utfString = Encoding.UTF8.GetString(rsp, 0, rsp.Length);
            //string utfString1 = Encoding.ASCII.GetString(rsp, 0, rsp.Length);
            //string str = Encoding.GetEncoding(936).GetString(rsp, 0, rsp.Length);
            //Console.WriteLine(utfString);
            //Console.WriteLine(utfString1);
            //Console.WriteLine(str);
            //byte[] rsp2 = new byte[10];
            //Console.WriteLine(rsp2.Length);
            //List< byte > ls = new List<byte>();
            //ls.AddRange(rsp);
            //ls.AddRange(rsp1);
            //rsp2 = ls.ToArray();
            //Console.WriteLine(rsp2.Length);
            //ArrayList arrLi = new ArrayList();
            //arrLi.AddRange(rsp);
            //Console.WriteLine(arrLi.ToArray().Length);
            //arrLi.AddRange(rsp1);
            //Console.WriteLine(arrLi.ToArray().Length);
            //byte[] tmpRsp = { 0x60, 0xD1 };
            //var i = arrLi.IndexOf(tmpRsp);
            //Console.WriteLine(i);
            //byte tmpRsp1 = 0x60;
            //var j = arrLi.IndexOf(tmpRsp1);
            //Console.WriteLine(j);
            //Console.WriteLine(Array.IndexOf(rsp, tmpRsp));

            //// 注意是TelnetServer
            //var appServer = new TelnetServer();
            //appServer.Setup(2012);
            //// 开始监听
            //appServer.Start();
            //while (Console.ReadKey().KeyChar != 'q')
            //{
            //    Console.WriteLine();
            //    continue;
            //}
            //// 停止服务器。
            //appServer.Stop();

            //启动客户端
            string     host   = "agps.u-blox.com";
            int        port   = 46434;
            AgpsClient client = new AgpsClient();

            client.StartClient(host, port);
            Console.WriteLine("Ublox Agps data len {0}", AgpsClient.AgpsData.Length);

            //MTK AGPS data
            MtkAgpsData mtkAgps = new MtkAgpsData();

            mtkAgps.update();
            Console.WriteLine("Mtk Agps data len {0}", MtkAgpsData.Data.Length);

            //启动定时器,定时更新AGPS数据。
            System.Timers.Timer agpsUbloxTimer = new System.Timers.Timer();
            agpsUbloxTimer.AutoReset = true;
            agpsUbloxTimer.Enabled   = true;
            agpsUbloxTimer.Interval  = 600000;
            agpsUbloxTimer.Elapsed  += new System.Timers.ElapsedEventHandler(AgpsUbloxHandle);
            agpsUbloxTimer.Start();

            Console.WriteLine("Press any key to start the agps server!");
            Console.ReadKey();
            Console.WriteLine();

            //读取配置文件
            //ConfigurationSection accounts = config.AppSettings.Settings());
            //Console.WriteLine(accounts.ToString());
            //判断App.config配置文件中是否有key
            if (ConfigurationManager.AppSettings.HasKeys())
            {
                //List<string> theKeys = new List<string>();      //保存key的集合
                //List<string> theValues = new List<string>();    //保存value的集合
                ////遍历出所有的key并添加进thekeys集合
                //foreach (string theKey in ConfigurationManager.AppSettings.Keys)
                //{
                //    theKeys.Add(theKey);
                //}
                ////根据key遍历出所有的value并添加进theValues集合
                //for (int i = 0; i < theKeys.Count; i++)
                //{
                //    foreach (string theValue in ConfigurationManager.AppSettings.GetValues(theKeys[i]))
                //    {
                //        theValues.Add(theValue);
                //    }
                //}
                ////验证key和value
                //for (int i = 0; i < theKeys.Count; i++)
                //{
                //    Console.WriteLine("Account: {0}, {1}", theKeys[i], theValues[i]);
                //}
                //遍历出所有的key并添加进thekeys集合
                //foreach (string theKey in ConfigurationManager.AppSettings.Keys)
                //{
                //    Keys.Add(theKey);
                //}
                ////根据key遍历出所有的value并添加进theValues集合
                //for (int i = 0; i < Keys.Count; i++)
                //{
                //    foreach (string theValue in ConfigurationManager.AppSettings.GetValues(Keys[i]))
                //    {
                //        Pwds.Add(theValue);
                //    }
                //}
                //for (int i = 0; i < Keys.Count; i++)
                //{
                //    Console.WriteLine("Account: {0},{1}", Keys[i], Pwds[i]);
                //}
                foreach (string key in ConfigurationManager.AppSettings.Keys)
                {
                    string value = ConfigurationManager.AppSettings.GetValue(key);
                    KeyDic.Add(key, value);
                }
                foreach (KeyValuePair <string, string> kvp in KeyDic)
                {
                    Console.WriteLine("KeyDic: {0},{1}", kvp.Key, kvp.Value);
                }
            }

            // 通过工厂创建一个加载器。
            var bootstrap = BootstrapFactory.CreateBootstrap();

            if (!bootstrap.Initialize())
            {
                Console.WriteLine("Failed to initialize!");
                Console.ReadKey();
                return;
            }

            var result = bootstrap.Start();

            Console.WriteLine("Start result : {0}!", result);
            if (log.IsDebugEnabled)
            {
                log.Debug("Start succ!");
            }
            if (result == StartResult.Failed)
            {
                Console.WriteLine("Failed to start!");
                Console.ReadKey();
                return;
            }

            while (Console.ReadKey().KeyChar != 'q')
            {
                Console.WriteLine();
                continue;
            }
            // 停止服务器
            bootstrap.Stop();

            //var appServer = new AppServer();

            ////Setup the appServer
            //if (!appServer.Setup(2012)) //Setup with listening port
            //{
            //    Console.WriteLine("Failed to setup!");
            //    Console.ReadKey();
            //    return;
            //}

            //Console.WriteLine();

            ////Try to start the appServer
            //if (!appServer.Start())
            //{
            //    Console.WriteLine("Failed to start!");
            //    Console.ReadKey();
            //    return;
            //}

            //Console.WriteLine("The server started successfully, press key 'q' to stop it!");
            //appServer.NewSessionConnected += new SessionHandler<AppSession>(appServer_NewSessionConnected);
            //appServer.NewRequestReceived += new RequestHandler<AppSession, StringRequestInfo>(appServer_NewRequestReceived);

            //while (Console.ReadKey().KeyChar != 'q')
            //{
            //    Console.WriteLine();
            //    continue;
            //}

            ////Stop the appServer
            //appServer.Stop();

            //Console.WriteLine("The server was stopped!");
            //Console.ReadKey();
        }