棋牌源码吧

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 286|回复: 0

网狐6603_经典版棋牌模拟发送消息

[复制链接]

2971

主题

0

回帖

8930

积分

超级版主

Rank: 8Rank: 8

积分
8930
发表于 2023-8-9 03:17:42 | 显示全部楼层 |阅读模式
专业二次开发网狐6603休闲版本与网狐经典二次开发,今天带来是棋牌游戏模拟玩家双方发送消息。
  CAttempterEngine实现了两个接口:IQueueServiceSink、IAttemperEngine;通过前面的分析,偶们了解到,IQueue接口自动化ServiceSink这个接口被是用来处理CQueue事件Service中的数据的,根据上面的UML我们可以看到,CAttemperEngine关联了一个CQueueService(或者直接点说是:持有了一个CQueue消息的拼音Service对象,说组合也成)。这样的话这个CAttemperEngine暴露出来的接口就只剩下IAttemperEnging了。

  1 //启动服务
  2 virtual bool __cdecl StartService();
  3 //消息免打扰停止服务
  4 virtual bool __cdecl StopService();
  5 //设置网络
  6 virtual bool __cdecl SetSocketEngine(IUnknownEx pIUnknownEx);
  7 //注册钩子
  8 virtual bool __cdecl SetAttemperEngineSink(IUnk消息范文nownEx pIUnknownEx);
  9 //获取接口
  10 virtual void __cde事件cl GetQueueService(const IID & Guid, DWORD dwQueryVer);
  这个接口有两处值得单独讨论的:SetSocketEngine、GetQueueService;SetSocketEngine,后面的分析中还会出现,我觉得这里是一个设引擎故障是什么意思计上的失误导致需要暴露socket引擎接口;
  Get引擎之心QueueService的设计思路可能是说,每个IAttemperEngine接口背后都有一个CQueueService,从以后的分析中可以看到,这个思路是理解整个kernel的关键。调度引擎应该是一个消息汇总(效验从个个引擎引擎盖怎么打开产生的消息)然后派发到IAttemperEngineSink。因为代码中是没有看到有关ITimerSinkISocketSin消息怎么写k之类的东东的,整个消息是个引擎引擎产生,然后投递到指定的CQueu引擎壁纸eService,然后汇总到这里被派发到I接口文档AttemperEngineSink出去的
 接口是什么 1//队列接口
  2void __cdecl CAttemperEngine::OnQueueServiceSink(WORD wIdentifier, void pBuffer, WORD wDataSize, DWORD dwInsertTime)
  3{
  4    //内核事件
  5   消息怎么写 ASSERT(m_pIAttemperEngineSink!=NULL);
  6    switch (wIdentifier)
  7    {
  8    case EV事件的英文ENT_TIMER:            //定时器事件
  9        {
  10   接口自动化       &n事件的英文bsp; //效验参数
  11 &n消息免打扰还能收到消息吗b接口sp;   &引擎之心优化nbs接口和抽象类的区别p;      ASSERT(wDataSize==sizeof(NTY_TimerEvent));
  12            if (wDa事件的英文taSize!=sizeof(NTY_TimerEvent)) return;
  13
  14            //处理消息
  15       &nbsp引擎;    NTY_TimerEven接口t pTimerEvent=(NTY_TimerEvent )pB引擎盖uf事件暴露法治意识缺位fer;
  1引擎壁纸6   &n接口crc错误计数bsp;        m_pIAttemperEngineSink->OnEventTime消息的格式r(pTimerEvent->wTimerID,pTimerEvent->wBindPa事件视界ram);
  17
  18            retu消息英语rn;
  19        }
  20    case EVENT接口测试_DATABASE:        //数据库事件
  21 &nbsp接口;      {
  22  &nbs消息p;       消息英语 引擎是什么意思 //效验参数
  23            ASS事件视界ERT(wDataS接口和抽象类的区别ize>=sizeof(NTY_DataBaseEve引擎英文nt));
  24         &nbsp引擎之心;  if (wDataSize
  25
  26&消息的拼音nbsp;     &nbsp事件营销案例;     //处理消息
  27      &n消息范文bsp; &nbsp接口类型;   NTY_DataBaseEvent pDataBaseEvent=(NTY_DataBaseEvent )pBuffer;
  28      &nbsp事件查看器;     m_pIAttemperEngineSink->OnEventDataBase(pDataBaseEvent+1,wDataSize-sizeof引擎读音(NTY_Data事件研究法BaseEvent),pDataBaseEvent);
  29
  30   &nbs消息英语p;     &nb事件研究法sp;  return;
  31&事件的英文nbsp;&nb消息提示音阿斗下载sp; &事件视界nbsp;  &n消息英语bsp; }
  32 &nbs事件的英文p;  case EVENT_SOCKET_ACCEPT:    //网络应答事件
  33        {
  34 引擎盖怎么打开           //效验大小
  35  &nb接口测试sp;    &nbsp接口自动化;    ASSERT(wDataSize==sizeof(NTY_SocketAcceptEvent));
  36         &n引擎壁纸bsp;  if (wDataSize!=sizeof(NTY_SocketAcceptEvent)) return;
  37
  38     &nbsp引擎盖;   事件暴露法治意识缺位   //处理消息
  39&nbs接口crc错误计数p;           NTY_SocketAcceptEvent pSocketAcceptEvent=(NTY_SocketAcceptEvent )pBuffer;
  40&接口和抽象类的区别nbsp;           m_pIAttemperEngineSink->OnEventSocketAccept(pSocketAcceptEvent);
  41

  42            return;
  43        }
  44   引擎 case EVENT_SOCKET_READ:        //网络读取事件
  45     &nbs接口类型p;  {
  46            //效验大小
  47      接口  &效验nbsp;   NTY_SocketReadEven接口自动化t pSocketReadEvent=(NTY_So事件cketReadEvent )pBuffer;
  48            ASSERT(wDataSiz消息的格式e>=sizeof(NTY_Soc消息英语ketReadEvent));
  49       消息免打扰是什么意思   &n效验bsp; ASS接口自动化ERT(wDataSize==(sizeof(NTY_SocketReadEvent)+pSocketReadEve事件营销nt->wDataSize));
  50&nbs接口自动化p;       &nbs接口文档p; &nb引擎之心优化sp; if (wDataSize
  51 &引擎盖怎么打开nbsp;          if (wDataSize!=(sizeof(NTY_Socke消息提示音阿斗下载tReadEvent)+pSocketReadEvent->wDa消息范文taSize)事件的英文) retu接口和抽象类的区别rn;
  52
  53  &n引擎英文bsp;  事件暴露法治意识缺位       //处理消事件的英文息
  54            bool bSuccess=false;
  55            try
  56&nb消息的格式sp;       消息英语&消息免打扰还能收到消息吗nbsp;   {
  57&nbs效验p;     &nbs接口和抽象类的区别p; &nb引擎盖sp;       bS事件脉络uccess=m_pIAttemperEngineSink->OnEventSocketRead(pSocketReadEvent->Command,pSocket接口文档ReadEvent+1,pSocketReadEvent->wDataSize,pSoc消息的格式ketR事件营销eadEvent);
  58 &引擎壁纸nbs接口crc错误计数p;     &nbs接口是什么p;&nb消息免打扰还能收到消息吗sp; 接口和抽象类的区别  }
  59&效验读音nbsp;&nb引擎读音sp;          catch接口的作用 ()    { }
  60    &n消息免打扰是什么意思bsp;       i消息已发出但被对方拒收什么意思f (bSuccess事件研究法==引擎盖false) m_pITCPSocketEngine->Clos事件战法兑换表eSocket(pSocketReadEvent->wIndex,pSocketReadEvent->wR效验的意思oundID);
  61
  62    &n事件暴露法治意识缺位bsp;&nb消息的拼音sp;      return;
  63接口是什么&n事件bsp;  事件的英文  事件研究法   }
  64 &消息已发出但被对方拒收什么意思nb引擎盖怎么打开sp;&nb消息免打扰是什么意思sp; case EVENT_SOCKET_CLOSE:    //网络关闭事件
  65 &nbs引擎之心优化p;      {
  66    &nbsp消息已发出但被对方拒收什么意思;       //效验大小
  67 &接口类型nbsp; &nbsp事件;&nb引擎故障是什么意思sp;&nb引擎盖怎么关sp; &nbsp引擎盖怎么打开;    ASSERT(wDataSize==sizeof(NTY_SocketCloseEvent));
  68     &接口和抽象类的区别nbsp;      if消息免打扰还能收到消息吗 (接口卡wData消息免打扰还能收到消息吗Size!=sizeof(NTY_SocketCloseEvent)) return;
  69
  70     &接口测试nbsp;      //处理消息
  71    引擎壁纸      引擎之心优化  NTY_Soc事件的英文ketCloseEvent pSocketCloseEvent=(NTY_Socket引擎英文CloseEvent )pBuffer引擎故障是什么意思;
  72        &n事件暴露法治意识缺位bsp;   m_pIAttemperEngin接口的作用eSink-引擎壁纸>OnEventSocketClose(pSocketCloseEvent);
  73
  74引擎是什么意思&nbs消息范文p;&nbs引擎盖p;   &nbs事件研究法p;      return;
  75    &引擎nbsp; &接口类型nbsp; }
  76    }
  77
  78消息的格式    //其他事件
  79接口和抽象类的区别    m_pIAttemper消息免打扰是什么意思EngineSink->OnAttemperEvent(wIdentifier,pBuffer,wDataSize接口crc错误计数,dwInsertTime);
  80
  81 &n消息怎么写bsp;  return;
  82}
  这个函数中一事件营销个很重要的参数:wIdentifier;
  可以来追溯一下他的源头:
  1//数据消息
  2事件相互独立void CQueueService消息范文::OnQueueSer接口crc错误计数viceThread(const tagDataHead & DataHead,事件营销案例 void pBuffer, WORD wDataSize)
  3{
  4&消息已发出但被对方拒收什么意思nbsp;   ASSERT(m_pIQueueServiceSink!=NULL);
  5    try
  6    {
  7        m_pIQueueServiceSink->OnQueueServiceSink(DataHead.wIdentifier,pBuffer,DataHead.wDataSize,DataHead效验的意思.dwInsertTime);
  8    }
  9  &n消息提示音阿斗下载bsp; catch () {}
  10  &nbs事件暴露法治意识缺位p; return;
  11}
  可以看见他是直接保存在最底效验读音层的那个DataStroage里边的,这个在上一章接口测试分析中可以看到效验读音。(个引擎利用CQueue效验读音ServiceEvent接口crc错误计数  Post数据的时候就携带了类接口型信息)
  另外一个要注意的点是对s消息英语ocket事件的处理,我之前认为调度引擎组合了一个socket引擎是一个设计缺陷,应为这里的在处理socket消息免打扰是什么意思 read事件的时候如果异常了直接直接使用引擎来关闭socket而不是调用socket sink的指定接口。猜想也许是不希望客户端直接处理socket句柄吧,,还的选择科技
游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棋牌源码吧

GMT+8, 2024-11-22 09:18 , Processed in 0.068548 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表