文档章节

网狐棋牌服务器

o
 osc_x4h57ch8
发布于 2018/04/24 11:58
字数 572
阅读 9
收藏 0
c++

精选30+云产品,助力企业轻松上云!>>>

工厂模式的接口,仿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()   //启动线程

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

定增事件统计分析和收益分析 - 知乎

A. 研究目的:本文利用优矿提供的行情数据、公司基本面数据、非公开发行数据等,参考天风证券《定增系列之一:定增节点收益全解析》(原作者:吴先兴等)的方法,对定增数量、募资金额等进行...

osc_xih8lf91
24分钟前
14
0
自动化测试框架知识,读这一篇就够了

自动化测试因其节约成本、提高效率、减少手动干预等优势已经日渐成为测试人员的“潮流”,从业人员日益清楚地明白实现自动化框架是软件自动化项目成功的关键因素之一。本篇文章将从 什么是真...

osc_42k1cyjd
25分钟前
7
0
软件测试的出路在哪里?【文末福利】

对任何职业而言,薪资始终都会是众多追求的重要部分。 前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经基本饱...

osc_icwhzig7
27分钟前
16
0
安卓7.0及以上版本抓包https失败解决方法

目录 现象 原因 解决办法 webview抓包失败 警告 现象 android7.0以上的手机https抓包失败(安装了https证书也不行) 原因 android7.0+的版本新增了证书验证(系统证书) 解决办法 前提:在手机端...

osc_22rhv8iu
28分钟前
20
0
CukeTest+Puppeteer的Web自动化测试一

一、初识BDD、Cucumber(黄瓜)、CukeTest 行为驱动开发(Behavior Driven Development,BDD)。行为驱动开发能够保持文档和测试脚本的一致性,便于维护、也便于业务人员和技术人员沟通,始终保...

osc_ocl8o73l
29分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部