网狐棋牌服务器

工厂模式的接口,仿com库模式实例化,异步调度引擎,对于棋牌卡牌游戏来说是个不错的开源项目,6603原始版本有内存泄漏,6701是某人扩展的修复版本,7.0.1是DIY项目,而对于开发的移动客户端,架构逻辑非常坑,应该不是同一个公司开发的,用于学习的话还行,商业化慎用.

>构建网络、数据库管理服务

>外部处理接口由用户二次开发

blog:网狐相关

blog:网狐学习

blog:网狐服务器架构设计分析

blog:整体框架分析

blog:完成游戏流程

blog:学习笔记

blog:登陆服务器

 荣耀:登陆服务器

登录服务器流程LogonServer.exe

    @@m_FlashAccredit.StartService();//启动网络服务

        ==》listen    //监听端口

        ==》m_lIOCPHandle = CreateIoCompletionPort//完成端口

        ==》CreateThread();AcceptWork,ReadWriteWork//创建工作线程

    @@StartService();//点击启动服务按钮

        ==》InitializeService()//初始化

        ==》StartKernelService()//启动内核

 

 完成端口详解

 完成端口理解

 

登录服务器流程:

入口:LogonServerDlg.cpp--->OnBnClickedStartService()==>m_ServiceUnits.StartService()

ServiceUnits.cpp--->StartService()==>StartKernelService()   //启动内核:时间引擎、调度引擎、数据引擎、协调引擎

  内核引擎--->时间引擎 StartService()==>m_TimerThread.StartThread()   //启动线程

  内核引擎--->调度引擎 StartService()==>m_QueueService.StartService()     //启动队列

  内核引擎--->数据引擎 StartService()==>m_pIDataBaseEngineSink->OnDataBaseEngineStart    //启动外挂

  内核引擎--->协调引擎 StartService()==>m_QueueService.StartService()

内核引擎--->网络引擎 StartService()==>CreateIOComleptionPort()

          StartService()==>m_SendQueueService.StartService()     //启动发送队列

内核引擎--->队列引擎 StartService()==>CreateIoCompletionPort() 

          StartService()==>m_QueueServiceThread.StartThread()   //启动线程

 

游戏服务器流程:

入口:GmaeServiceDlg.cpp--->OnBnClickedStartService()==>m_ServiceUnits.StartService()

ServiceUnits.cpp--->StartService()==>StartKernelService()  //启动内核:时间引擎、调度引擎、协调引擎、数据引擎m_RecordDataBaseEngine、数据引擎m_KernelDataBaseEngine、数据协调管理m_DBCorrespondManager

内核引擎--->网络引擎 StartService()==>CreateIOComleptionPort()

          StartService()==>m_SendQueueService.StartService()     //启动发送队列

内核引擎--->队列引擎 StartService()==>CreateIoCompletionPort() 

          StartService()==>m_QueueServiceThread.StartThread()   //启动线程

 

异步引擎流程:

AsynchronismEngine.cpp--->StartService()==>m_MessageThread.StartThread()  //启动线程

 

网络引擎流程:

TCPNetworkEngine.cpp--->StartService()==>CreateIOCompletionPort()

                   ==>WSASocket()

                   ==>bind()

                   ==>listen()

                   ==>m_SendQueueService.StartService()    //发送队列

                   ==>pServerSocketRSThread->InitThread()    //建立读写线程

                   ==>m_SocketAcceptThread.InitThread()    //建立应答线程

                   ==>pServerSocketRSThread->StartThread()     //运行读写线程

                   ==>m_SocketDetectThread.StartThread()     //网络监测线程

                   ==>m_SocketAcceptThread.StartThread()     //运行应答线程

内核引擎--->队列引擎 StartService()==>CreateIoCompletionPort() 

          StartService()==>m_QueueServiceThread.StartThread()   //启动线程

 

TCPSocketService.cpp--->StartService()==>m_QueueService.StartService()   //队列服务开始服务

内核引擎--->队列引擎 StartService()==>CreateIoCompletionPort() 

                ==>m_QueueServiceThread.StartThread()   //启动线程

 

posted @ 2018-04-24 11:58  番茄玛丽  阅读(643)  评论(0编辑  收藏  举报