Esempio n. 1
0
 public void StartThread()
 {
     mDBConnect = new ServerFrame.DB.DBConnect();
     mDBConnect.OpenConnect();
     mRunning = true;
     mThread  = new System.Threading.Thread(new System.Threading.ThreadStart(this.ThreadLoop));
     mThread.Start();
 }
Esempio n. 2
0
        public void Start(IDataServerParameter parameter)
        {
            Stop();

            mParameter       = parameter;
            mDBLoaderConnect = new ServerFrame.DB.DBConnect();
            mDBLoaderConnect.OpenConnect();

            //ServerFrame.Support.ClassInfoManager.Instance.Load(false);

            Log.FileLog.Instance.Begin("DataServer.log", false);

            Log.Log.Server.Print("DataServer Start!");
            Log.FileLog.Instance.Flush();

            IServer.LoadAllTemplateData(ServerCommon.ServerConfig.Instance.TemplatePath);
            CSCommon.CSLog.LogFun = Log.Log.Common.Warning;
            ServerCommon.TemplateTableLoader.LoadTable(ServerCommon.ServerConfig.Instance.TablePath);

            //加载数据库中的静态配置信息
            CSCommon.Data.CDbConfig.LoadDbConfig(mDBLoaderConnect);

            //国战服务初始化
            CountryWar.CCountryWarMgr.Instance.Start(mDBLoaderConnect);


            Thread.AccountLoginThread.Instance.StartThread();
            Thread.PlayerEnterThread.Instance.StartThread();
            Thread.DBConnectManager.Instance.StartThreadPool(2);

            AsyncExecuteThreadManager.Instance.InitManager(1);
            AsyncExecuteThreadManager.Instance.StartThread();

            //mChargeManger = new Data.ChargeManager();

            mPlanesMgr = new Data.PlanesMgr(this);

            Log.Log.Server.Print("DBConnect OK!");

            mTcpSrv.ReceiveData          += RPC.RPCNetworkMgr.Instance.ServerReceiveData;
            mTcpSrv.CloseConnect         += this.ServerDisConnected;
            mRegisterConnect.ReceiveData += RPC.RPCNetworkMgr.Instance.ClientReceiveData;
            mRegisterConnect.NewConnect  += this.OnRegisterConnected;

            mRegisterConnect.Connect(parameter.RegServerIP, parameter.RegServerPort);
            mLinkState = DataServerState.WaitRegServer;

            InitNamePool();

            mPlayerManager.DownloadPlayerData(mDBLoaderConnect);


            /*int avgSize = 0;
             * Support.PerfCounter perf = new Support.PerfCounter();
             * perf.Begin();
             * for (int i = 0; i < 1000; i++)
             * {
             *  RPC.DataWriter dw0 = new RPC.DataWriter();
             *  CSCommon.Data.ItemData item0 = new CSCommon.Data.ItemData();
             *  item0.ItemTemlateId = 2;
             *  //item0.DangrousReInitData();
             *  RPC.DataWriter dw1 = new RPC.DataWriter();
             *  CSCommon.Data.ItemData item1 = new CSCommon.Data.ItemData();
             *  item1.ItemTemlateId = 2;
             * // item1.DangrousReInitData();
             *  dw0.Write(item0);
             *  dw1.Write(item1);
             *
             *  int compressSize = dw1.CompressWithTemplate(dw0);
             *  dw1.UnCompressWithTemplate(dw0);
             *
             *  avgSize += compressSize;
             *
             *  RPC.DataWriter dw2 = new RPC.DataWriter();
             *  dw2.Write(item1);
             *  bool isSame = dw1.IsSame(dw2);
             * }
             * Int64 time = perf.End();
             * System.Diagnostics.Debug.WriteLine( "{0}:{1}" , avgSize / 1000, time);*/

            //test

            /*
             * var start = ServerCommon.IServer.timeGetTime();
             *
             * CSCommon.Data.RoleDetail rd = new CSCommon.Data.RoleDetail();
             * CSCommon.Data.RoleDetail rd2 = new CSCommon.Data.RoleDetail();
             * //var r = TestAutoCode(rd);
             * rd.BagSize = 155;
             * rd.BindRmb = 155;
             * rd.CreateTime = DateTime.Now;
             * rd.LocationX = 15211;
             * rd.LocationY = 15211;
             * rd.LocationZ = 15211;
             * rd.Rmb = 123;
             * rd.RoleExp = 333;
             * for (int i = 0; i < 10000; i++)
             * {
             *  //var r = rd.GetSql(rd2);
             *  var r = ServerFrame.DB.DBConnect.TestUpdateData("", rd, rd2);
             * }
             * var end = ServerCommon.IServer.timeGetTime() - start;
             * var t = end;*/
        }