網狐框架分析二 登入伺服器 150617

2021-07-03 08:33:06 字數 2388 閱讀 1330

##1 登入伺服器 logonserver啟動流程

```flow

st=>start: start

io=>inputoutput: verification

op=>operation: your operation

cond=>condition: yes or no?

e=>end

st->io->op->cond

cond(yes)->e

cond(no)->op

```---

#2 流程分析

##logonserverdlg(onbnclickedstartservice) //啟動

##=>m_logonservice.startservice()  //啟動服務

==>m_timerengine->startservice()     //時間引擎

===>m_timerthread.startthread() //啟動服務

===>cservicethread::startthread()//進入函式,開啟監聽執行緒_beginthreadex

====> cservicethread::threadfunction()//執行緒函式

*****>pservicethread->oneventthreadrun()//while迴圈中的函式

==>m_tcpsocketcorrespond->startservice()//網路引擎

===>cqueueservice::startservice()//

====>createiocompletionport //建立完成埠

====> cservicethread::startthread()//啟動監聽執行緒_beginthreadex

*****>pservicethread->oneventthreadrun()//乙個while迴圈監聽函式

==>m_attemperengine->startservice()//排程引擎

===>m_queueservice.startservice()//啟動佇列

===>cqueueservice::startservice()//建立完成埠,啟動執行緒

====>m_queueservicethread.startthread()//

====>cservicethread::startthread()//_beginthreadex

*****>cservicethread::threadfunction()//

*****=>pservicethread->oneventthreadrun()//while迴圈呼叫函式

==>m_databaseengine->startservice()//資料引擎

===>cdatabaseengine::startservice()//啟動服務

====>m_queueserviceevent.setqueueservicesink()//設定佇列

*****>cqueueservice::startservice()//建立完成埠,起執行緒

*****=>m_queueservicethread.startthread()//

*****=> cservicethread::startthread()//_beginthreadex

*****==>pservicethread->oneventthreadrun()//while迴圈呼叫函式

====>m_pidatabaseenginesink->ondatabaseenginestart()//啟動外掛程式

*****>cdatabasesink::ondatabaseenginestart()//模組啟動

*****>m_accountsdbmodule->setconnectioninfo()//連資料庫

*****=>cdatabase::setconnectioninfo()//設定構造連線字串

*****>m_accountsdbmodule->openconnection()//發起連線

*****=>cdatabase::openconnection()//發起連線

*****==>m_dbconnection->open()//_connectionptr m_dbconnection;//資料庫物件

==>m_tcpnetworkengine->startservice()//網路引擎

===>ctcpnetworkengine::startservice()//

//1.獲取cpu執行緒數

//2.建立完成埠(啟動監聽執行緒while迴圈呼叫函式)

//3.建立監聽socket

//4.啟動傳送佇列 m_sendqueueservice.startservice();

//5.建立讀寫執行緒,建立應答執行緒,執行讀寫執行緒,網路檢測線程,執行應答執行緒

網狐框架分析二 登入伺服器

1 登入伺服器 logonserver啟動流程 flow st start start io inputoutput verification op operation your operation cond condition yes or no?e end st io op cond cond ...

網狐框架分析四 服務裝載器

1 服務裝載器 serviceloader 流程 2 流程分析 cserviceloaderdlg onbnclickedstart 啟動 載入一些初始化資料 m gameservice startservice 核心元件啟動服務 cgameservice startservice m tcpsoc...

網狐框架分析四 服務裝載器 150617

1 服務裝載器 serviceloader 流程 2 流程分析 cserviceloaderdlg onbnclickedstart 啟動 載入一些初始化資料 m gameservice startservice 核心元件啟動服務 cgameservice startservice m tcpsoc...