网狐棋牌服务器

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

 

转载于:https://www.cnblogs.com/tomatokely/p/8927630.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能说明 1、可以对微信好友分类分组,比如分成客户组,员工组,可针对好友分组群发微信。 2、可以设置聊天机器人,让你的个人微信拥有自动根据预设关键字回复客户,跟据这功能可制成菜单型式的回复,使你的个人微信也具有微信公众号的功能,还不受众号那样的发信息限制。 3、集成了微信接口,具有获取好友列表及接收和发送微信功能,让你非常方便的集成到企业的OA办公系统、订单状态监控、服务器运行状态监控等。 使用说明: 1、请用手机微信扫描右边二维码登录系统(如不显示二维码,请“刷新页面”)。 2、本系统所有操作都是通过模拟控制页实现,请不要直接操作右边的“微信页版”,以免影响本软件的正常操作。 3、建议一个注册账号只对应一个微信账号,否则历史信息会混乱。 4、本软件免费用户信息带尾巴,批量发送每次限制10条,超过部分被忽略(用户可分多批发),使用时间不限制。 5、本软件付费会员不受以上第4条限制,会员时间到期后自动转成免费用户。 ***微信接口命令说明*** ****************************************** islogin 确定服务或微信是否登录 返内容如下几种: 1)"已登录" 表示都已经登录 2)"客服和微信都未登录" 3)"客服未登录' 4)"微信未登录" Url示例:http://127.0.0.1:8081/islogin ****************************************** logincode 取得登录二维码图片,以便远程手机扫描登录 如果返回非图片,表示出错或返回"微信已登录"这几字 页中显示图示例: ****************************************** list 获取客户列表 以Xml文本格式返回列表 开发者可以直接转为DataTable,C#代码示例如下: WebClient webc = new WebClient(); string xmltxt=webc.DownloadString("http://127.0.0.1:8081/list"); DataTable dt=XmlTxtToDataTable(xmltxt); private DataTable XmlTxtToDataTable(string XmlTxt) {//Xml文本转DataTable XmlDocument doc = new XmlDocument(); doc.LoadXml(XmlTxt); XmlNodeReader xnr = new XmlNodeReader(doc); DataSet ds = new DataSet(); ds.ReadXml(xnr); DataTable dt = ds.Tables[0]; return dt; } ****************************************** getimg 取得客户图标 参数 uname=客户名(必选) (用list获取到的客户名) 如果返回非图片,表示出错或返回"客户名为空或找不到。"等字符 页中显示图示例: ****************************************** send 发送信息 参数 uname=目标客户名(必选) (用list获取到的客户名) msg=信息内容(必选) time=定时发送时间(可选),格式:"yyyy-MM-dd HH:mm:ss" msid=调用者定的信息ID(可选,是大于0数字才有效),用于在sendend判断发送结果 返回以下情况 1)"ok"表示成功加入到发送队列(不是已发成功),是否成功要用sendend命令根据"信息ID"查 2)返回其它信息表示出错信息 GET提交示例:http://127.0.0.1:8081/send?uname=客户名&msg=信息内容&time=2016-03-15 15:20:00&msid=3 ****************************************** sendend 判断发送结果 参数 msid=调用者在发送时定的信息ID 返回以下情况 "ok"=发送成功 "err"=发送出错
本源码来自外星人源码论坛 文件夹 PATH 列表 卷序列号码为 0006EE50 EC5F:C44B C:. │ v5目录的结构树.TXT │ www.eenot.net.bat │ ├─开发库 │ ├─Include │ │ │ AndroidUserItem.h │ │ │ AndroidUserManager.h │ │ │ Array.h │ │ │ AvatarControlHead.h │ │ │ BitImage.h │ │ │ BitImageEx.h │ │ │ CameraControl.h │ │ │ CMD_Commom.h │ │ │ CMD_Correspond.h │ │ │ CMD_GameServer.h │ │ │ CMD_LogonServer.h │ │ │ CustomFaceManager.h │ │ │ Custsite.h │ │ │ D2DEngine.h │ │ │ D2DInterface.h │ │ │ D3DDevice.h │ │ │ D3DDirect.h │ │ │ D3DFont.h │ │ │ D3DMusic.h │ │ │ D3DSound.h │ │ │ D3DSoundBuffer.h │ │ │ D3DSoundThread.h │ │ │ D3DSprite.h │ │ │ D3DSurface.h │ │ │ D3DTexture.h │ │ │ DataBaseAide.h │ │ │ Define.h │ │ │ DFontEx.h │ │ │ DirectShowBasic.h │ │ │ DlgBrowser.h │ │ │ DlgGameRule.h │ │ │ DlgInsureCounter.h │ │ │ DlgInsureGame.h │ │ │ DlgMatchAwards.h │ │ │ DlgServerItem.h │ │ │ DlgServerWizard.h │ │ │ DlgTrumpetItem.h │ │ │ DlgVideoClone.h │ │ │ DownLoad.h │ │ │ DownLoadHead.h │ │ │ Expression.h │ │ │ FaceCustomControl.h │ │ │ FaceItemControl.h │ │ │ FaceItemView.h │ │ │ FaceSelectControl.h │ │ │ Flash.ocx │ │ │ FlashControl.h │ │ │ GameEngineHead.h │ │ │ GameFrameApp.h │ │ │ GameFrameAvatar.h │ │ │ GameFrameControl.h │ │ │ GameFrameEngine.h │ │ │ GameFrameHead.h │ │ │ GameFrameMedalView.h │ │ │ GameFramePublicize.h │ │ │ GameFrameService.h │ │ │ GameFrameUserView.h │ │ │ GameFrameView.h │ │ │ GameFrameViewD3D.h │ │ │ GameFrameViewGDI.h │ │ │ GameFrameWnd.h │ │ │ GamePropertyCtrl.h │ │ │ GamePropertyHead.h │ │ │ GamePropertyItem.h │ │ │ GamePropertyManager.h │ │ │ GameServiceHead.h │ │ │ GIFImage.h │ │ │ GlobalServer.h │ │ │ GlobalUnits.h │ │ │ GlobalUserInfo.h │ │ │ HeadTranslate.h │ │ │ IDispimp.h │ │ │ ImageEditorControl.h │ │ │ ImageOle.dll │ │ │ Information.h │ │ │ IPC_GameFrame.h │ │ │ K

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值